📜  Spring – 在 Spring Security 中添加用户名和密码(1)

📅  最后修改于: 2023-12-03 15:20:13.654000             🧑  作者: Mango

Spring – 在 Spring Security 中添加用户名和密码

在开发 web 应用时,身份验证是一个重要的安全措施。Spring Security 提供了丰富的身份验证和授权功能,开发者可以很容易地在应用程序中集成。

下面是如何在 Spring Security 中添加用户名和密码:

1. 添加 Spring Security 依赖项

在项目中的 pom.xml 文件中添加以下依赖项:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>
2. 添加 Spring Security 配置文件

在应用程序中添加一个 Spring Security 配置文件 security-config.xml,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:security="http://www.springframework.org/schema/security"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/security
                           http://www.springframework.org/schema/security/spring-security.xsd">
    
    <security:http>
        <security:intercept-url pattern="/**" access="hasRole('USER')" />
        <security:http-basic />
    </security:http>
 
    <security:authentication-manager>
        <security:authentication-provider>
            <security:user-service>
                <security:user name="admin" password="password" authorities="USER" />
            </security:user-service>
        </security:authentication-provider>
    </security:authentication-manager>
    
</beans>
  • <security:http> 标签指定了应用程序中需要保护的 URL,并使用基本身份验证。在此示例中,除了登录页外,其他所有页面都需要验证用户。
  • <security:authentication-manager> 标签配置了身份验证管理器。在此示例中,我们只有一个用户“admin”,密码为“password”,拥有“USER”角色。
3. 在 web.xml 中配置 Spring Security 过滤器

配置 web.xml,使 Spring Security 过滤器可以被应用到 web 请求中。

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
 
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
4. 测试

现在,启动应用程序并访问任意 URL,将看到以下输出:

spring-security-login-prompt

在弹出的对话框中输入设置的用户名和密码即可成功登录。

以上就是在 Spring Security 中添加用户名和密码的方法。Spring Security 提供了强大且易于配置的身份验证和授权功能,可以帮助开发者更轻松地保护应用程序的安全性。