安装和配置Spring Cloud Security

2023-04-13 19:05:18 浏览数 (3)

1. 添加依赖

在 Spring Boot 项目的 pom.xml 文件中添加 Spring Cloud Security 的依赖:

代码语言:javascript复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-security</artifactId>
</dependency>

2. 配置安全规则

在 Spring Boot 项目的 application.yml 或 application.properties 文件中添加安全规则,以控制访问权限。以下是一个简单的示例:

代码语言:javascript复制
spring:
  security:
    user:
      name: user
      password: password

这里我们配置了一个简单的用户名和密码的认证方式。

3. 创建安全配置类

创建一个安全配置类,继承 WebSecurityConfigurerAdapter 类,实现其中的 configure() 方法。

代码语言:javascript复制
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/login**").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .defaultSuccessUrl("/")
                .permitAll()
                .and()
                .logout()
                .logoutSuccessUrl("/login?logout")
                .permitAll();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
                .inMemoryAuthentication()
                .withUser("user").password("{noop}password").roles("USER");
    }
}

这里我们配置了一个简单的认证规则,只允许经过认证的用户访问其他资源,未认证的用户访问 /login 路径并登录,用户认证信息在内存中设置。

4. 添加登录页面

创建一个登录页面,以便用户进行认证。以下是一个简单的登录页面示例:

代码语言:javascript复制
<!DOCTYPE html>
<html>
<head>
    <title>Login Page</title>
</head>
<body>
<h1>Login Page</h1>

<div th:if="${param.error}">
    <p class="error">Invalid username and password.</p>
</div>
<div th:if="${param.logout}">
    <p>You have been logged out.</p>
</div>

<form th:action="@{/login}" method="post">
    <div><label>Username: <input type="text" name="username"/></label></div>
    <div><label>Password: <input type="password" name="password"/></label></div>
    <div><input type="submit" value="Sign In"/></div>
</form>

</body>
</html>

5. 测试应用程序

运行应用程序,访问 http://localhost:8080/login 页面,输入用户名和密码,然后成功登录。

0 人点赞