這將是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
}
}