【问题标题】:how to implement a authentication with spring boot security?如何使用 Spring Boot 安全性实现身份验证?
【发布时间】:2014-07-06 11:28:08
【问题描述】:

我正在使用弹簧靴。我想发布一个用户名和密码参数来登录,如果登录成功则返回一个令牌。之后,我将使用令牌来判断登录状态。这是我的安全配置代码。但我不知道在哪里编写登录验证逻辑代码。

SecurityConfig.java

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {



     @Override
     protected void configure(HttpSecurity http) throws Exception {
         http.authorizeRequests()
                .anyRequest()
                .fullyAuthenticated()
                .and()
                .formLogin()
                .loginPage("/user/unlogin")
                .permitAll(); 
     }

     @Override
     public void configure(WebSecurity web) throws Exception {
         web.ignoring().antMatchers("/user/login")
                .antMatchers("/user/logout")
                .antMatchers("/user/register"); 
     }
}

==========================

谢谢!

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    使用 Spring 做某事的方法总是不止一种。 Spring Boot 有一条快乐的道路(可能),你似乎已经开始了。但请注意,如果您希望 Boot 提供一些默认行为,请不要使用 @EnableWebSecurity(如用户指南中所述)。 web-secure sample 有一个你可以学习的例子。

    如果您使用 formLogin(),默认登录 URL 是 /login(不是 /user/login),因此您应该能够将用户名和密码发布到该端点以进行身份​​验证。不要使用 web.ignoring() 将 /login 添加到不安全的路径中,否则 Spring Security 将永远不会处理它。当您发布到 /login 时,您会得到一个 JSESSIONID cookie。那是您的身份验证令牌,它会在服务器中的会话到期时到期(默认为 30 分钟,但易于配置)。将它包含在未来对安全资源的请求中 - 一些 HTTP 客户端甚至会为您执行此操作(就像浏览器一样)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-13
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      相关资源
      最近更新 更多