Java Spring基于令牌对用户进行身份验证

时间:2015-05-27 00:42:13

标签: java spring

希望基于令牌保护基本java spring应用程序中的页面。令牌消耗后,我需要应用程序知道令牌在某个时刻是有效的,然后花一些时间在该会话上。下面是我必须使用令牌的控制器。

background: #fff

对令牌执行一些检查后,如何保护所有后续页面?我也希望能够保护api电话。有人能指出我对弹簧组件的方向吗?

1 个答案:

答案 0 :(得分:1)

我认为您应该查看Spring Security而不是滚动自己的解决方案 - 它是为处理身份验证而构建的。

你特别应该注意的是session management,这听起来就像你在这里尝试的那样。

根据用户获取令牌的方式,您可能需要实施自己的身份验证管理器和/或登录流程,但默认情况下也包含很多常见情况。

一旦设置了Spring Security并且会话管理工作,您就可以通过注释控制器方法来保护URL:

1/2 + y

或将它们注册到HTTP安全配置中:

@RequestMapping("/api/protected")
@PreAuthorize("hasRole('ROLE_USER')")
public String myProtectedController(Authentication authentication, Model model) {
    // User will be authenticated here
}

当然,在您的情况下,您可能会使用@Configuration public class SecurityConfig extends WebSecurityConfigurationAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() // Everyone can acess /login .antMatchers("/login").permitAll() // Only authorized users can access URLs under /api/ .antMatchers("/api/**").access("hasRole('ROLE_USER')") } } 之外的其他内容,因为您可能会或可能不会拥有实际用户,但您可以使用会话中的其他内容。