学习开源spring security jwt
jwt理解:授权服务器颁发的令牌,包含关于用户或者客户的元数据和声明(claims)通过检查签名,期望的颁发者(issuer),期望的接收人aud(audience),或者scope, 资源服务器可以在本地校验令牌 通常实现为签名的JSON Web Tokens(JWT)
工程结构:
包名:
org.simple.web.jwt.annotation : 封装继承WebSecurityConfigurerAdapter,自定WebSecurityConfig
org.simple.web.jwt.config:spring security配置文件
org.simple.web.jwt.filter :
JwtAuthenticationTokenFilter负责处理jwt事情
UserLoginFilter:用户登录操作
org.simple.web.jwt.property:jwt配置文件
核心配置类
配置SimpleAuthenticatingSuccessHandler校验成功之后后面处理
SimpleAuthenticatingFailureHandler校验失败之后后面处理
JwtService通过generateToken生成token,通过validateToken校验token
postman请求:
http://localhost:8080/auth/token请求头aContent-Type需要配置
用户名和密码保持一样,因为PasswordEncoder是md5模式
org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider#authenticate方法调用org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider#additionalAuthenticationChecks校验用户名和密码是否正确
登录成功之后,请求http://localhost:8080/index/index