这是一个可插拔式的jwt组件,为目标接口提供鉴权功能
<dependency>
<groupId>org.bitbucket.b_c</groupId>
<artifactId>jose4j</artifactId>
<version>0.6.5</version>
</dependency>
public interface JwtUserMapper {
default JwtUser find(Map<String,Object> properties){
return null;
}
}
接口没有默认实现,用户将本插件集成进项目中后需要实现JwtUserMapper
接口的find
方法,并将其声明为一个JavaBean
例如:
@Service
public class DefaultJwtUserMapper implements JwtUserMapper {
private List<JwtUser> defaultUsers=new ArrayList<JwtUser>(){
{
add(new JwtUser("1","tom",null));
}
};
@Override
public JwtUser find(Map<String,Object> properties) {
if(properties.containsKey("uid")) {
String uid=properties.get("uid").toString();
Optional<JwtUser> any = defaultUsers.stream().filter(user -> user.getUid().equals(uid)).findAny();
return any.orElse(null);
}
return null;
}
}
添加后接口访问需要提供token
添加后不需要提供token就可以访问,优先级最高
在application.yml
文件中指定enable=true才会开启jwt鉴权功能,enable默认为false