这将是JWT令牌的完美用例。一旦您在服务器端进行身份验证,后端服务可以创建具有特定用户角色的JWT令牌并将其返回给Angular2应用。 Angular应用程序可以根据用户的角色配置UI。在每个连续的服务器调用中,角度应用程序都可以发回此令牌,以便使用此令牌来查找用户的角色。 Spring安全允许在验证之前添加自定义过滤器,以便验证令牌。
@Configuration
public class WebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterAfter(new TokenFilter(), BasicAuthenticationFilter.class);
}
}
Inside TokenFilter可以解析JWT令牌以查找用户角色并允许访问特定的受保护资源。如果有人尝试修改令牌或请求禁用保护资源,则JWT令牌验证将失败。在后端侧
public class TokenFilter extends GenericFilterBean {
@Override
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
// Validate Token her for the requested url
if(validateToken(request.getHeader("auth")){
chain.doFilter(request, response);
}else{
// return 403 response
}
}