# 更新日志
中央仓库:https://search.maven.org/
阿里云仓库:https://maven.aliyun.com/mvn/search
Maven镜像仓库:https://mvnrepository.com/artifact/com.starmcc
# 1.1.0-RELEASE
# 版本日志
增加对重发token机制的拓展方法verifyRestartToken
,可以根据token设置的有效期和token的签发时间自行定制重发机制。
后期可能会有相应的补丁增加参数。
# Maven依赖
<dependency>
<groupId>com.starmcc</groupId>
<artifactId>qm-security</artifactId>
<version>1.1.0-RELEASE</version>
</dependency>
2
3
4
5
# 1.0.3-RELEASE
# 版本日志
优化拦截器逻辑,增加对路径404的判断拦截。
# Maven依赖
<dependency>
<groupId>com.starmcc</groupId>
<artifactId>qm-security</artifactId>
<version>1.0.3-RELEASE</version>
</dependency>
2
3
4
5
# 1.0.2
# 版本日志
优化token过期和重新签发逻辑,该逻辑目前改为当请求时,首先校验token是否已经过期,过期将拦截,并回调noPassCallBack 返回type值为5,如果未过期则校验当前时间 是否大于 (token 签发时间 + 失效时长 / 2),如果大于则重新签发。
过去的版本中,token只要过期,无论过期多久都会进行重新签发token,这样带来的安全问题得以重视,并在该版本中解决。
请不要设置token时效性过久,除非需要永久登录。建议设置为半小时,这样当用户在15分钟后继续操作,内部会自动重新签发新的token,当用户15分钟后再也没有进行任何操作就不会触发重新签发token,那么用户携带的token就将永久过期。
如果防止token被盗用?下面给出几个建议方案。
web 网页端
建议使用中间件记录请求用户的ip,可以在登录时记录请求的ip,然后在realm中的authorizationUserInfo进行这些判断,因为我们还提供了request,你可以轻而易举的获取到网页端请求的ip。
移动APP端
由于移动端的特殊,鉴于移动APP端会使用WIFI和移动网频繁切换,总不能当用户切换网络环境后又进行一次重新登录吧?所以不能使用ip这种方式进行验证。
建议使用手机的序列号、机器码等作为依据,在登录时封装在token当中,每次请求在realm中的authorizationUserInfo中校验这些唯一的值是否相等,如果不相等则表示该token被盗用了,拒绝访问。
# Maven依赖
<dependency>
<groupId>com.starmcc</groupId>
<artifactId>qm-security</artifactId>
<version>1.0.2</version>
</dependency>
2
3
4
5