本文简单介绍了整体的安全体系。
1. spring security
1.1. 工作原理
扩展了一条FilterSecurityInterceptor chain, 放置在FilterSecurityInterceptor前。 编写了一个AlreadyLoginFilter,放置在UsernamePasswordAuthenticationFilter前。
FilterSecurityInterceptor在系统启动时,会从数据库抽取requestmap的记录,组织成InterceptedUrl的列表对象,存放在内存中。针对每次的访问执行基于spEL表达式的过滤判断。
2. spring security jwt
2.1. 工作原理
-
通过固定的端点(/api/login),获取用户的jwt(使用密钥和对称算法对用户信息加密后字符串)
-
增加一个Filter,过滤访问中的请求header,若有Authorization属性,则校验此jwt是否合法(尝试解密)
-
实现了应用的无状态化,与session和cookie无关联