提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
系统的访问认证是维护系统安全,保障特定权限的用户的正确访问系统获取有效资源,因此对于系统添加认证是必须的。
一、Nacos认证框架
Nacos认证的框架主要是
二、框架研究
第一步:在controller中增加注解@Secured,标准当前controller的方式方式,访问的资源
第二步:添加过滤器,对注解@Secured进行权限的校验
具体的流程:
- 判断是否开启认证(否的开启直接放行)
- 判断是否内部服务调用(是的都是直接放行)
- 查询当前controller中的资源,是否存在资源名称,默认给空的情况下,当前都是通过反射创建ResourceParser对象去解析
- 通过权限认证中心:AuthManager ,完成权限认证
1.实现方式
nacos实现权限认证主要是通过注解,自定义@Secured,主要是访问资源的动作,资源名称(资源默认是空),以及解析资源三部分,对于资源解析提供了默认的DefaultResourceParser,对于其他类型的资源由具体的其他类通过实现ResourceParser接口完成。
@Retention(RetentionPolicy.RUNTIME)
public @interface Secured {
/**
* The action type of the request.
*
* @return action type, default READ
*/
ActionTypes action() default ActionTypes.READ;
/**
* The name of resource related to the request.
*
* @return resource name
*/
String resource() default StringUtils.EMPTY;
/**
* Resource name parser. Should have lower priority than resource().
*
* @return class type of resource parser
*/
Class<? extends ResourceParser> parser() default DefaultResourceParser.class;
}
public class DefaultResourceParser implements ResourceParser {
@Override
public String parseName(Object request) {
return StringUtils.EMPTY;
}
}
注解controller
@GetMapping
@Secured(action = ActionTypes.READ, parser = ConfigResourceParser.class)
public void getConfig(HttpServletRequest request, HttpServletResponse response,
@RequestParam("dataId") String dataId, @RequestParam("group") String group,
@RequestParam(value = "tenant", required = false, defaultValue = StringUtils.EMPTY) String tenant,
@RequestParam(value = "tag", required = false) String tag)
throws IOException, ServletException, NacosException {
}
2.权限认证中心
Nacos的认证主要使用的是Spring的生态框架
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
- 登录
@Autowired
private JwtTokenManager tokenManager;
使用JWT的方式
- 认证鉴权
对于这块没有什么好讲的,这块也是学习spring-boot-starter-security的一种方式,这个是一个非常好的例子,是可以参考和借鉴的。
总结
Nacos的认证这块就是这么多,目前在自己学习写博客,比较粗鄙,在一步步学习中,谢谢。
本文详细探讨了Nacos的认证框架,包括使用@Secured注解实现资源访问控制,以及Spring Boot中的JWT认证过程。重点介绍了认证中心的实现方式和权限验证流程。
2980

被折叠的 条评论
为什么被折叠?



