当前位置: 代码迷 >> 综合 >> Nacos Auth 模块分析
  详细解决方案

Nacos Auth 模块分析

热度:73   发布时间:2024-01-04 21:28:04.0

说明:本篇文章部分内容参考了网上的文章(在下文已给出原文链接),由于本人能力有限,如果有书写错误的地方,欢迎各位大佬批评指正!我们互相交流,学习,共同进步!

该项目的地址:https://github.com/xiaoheng1/nacos_read

关于安全如何设计:

@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;

}

关于权限使用:com.alibaba.nacos.core.auth.AuthFilter#doFilter

权限模块比较简单,依托于 Spring,定义 Secured 注解,然后在 Filter 中解析 Secured,完成权限校验工作.

Permission(resource, action) 对资源的操作.

Nacos 权限控制方案中分为两部分,都是通过 AuthManager 来完成的.

1.身份识别
2.权限识别

关于身份识别,采用的是 JWT Token,而权限识别,采用的是 RBAC 模型.

身份识别,参考 AuthManager.login

SecurityContextPersistenceFilter
|
UsernamePasswordAuthenticationFilter
|
AuthenticationManager
|
AuthenticationProvider
|
AbstractUserDetailsAuthenticationProvider
|
DaoAuthenticationProvider

用户需要实现 UserDetailsService 接口.

JWT token.

JWT & Spring-Secutiry 整合:com.alibaba.nacos.console.security.nacos.NacosAuthConfig

参考:https://www.cnblogs.com/zzjlxy-225223/p/11290900.html

参考:
1.https://blog.csdn.net/u010889990/article/details/105154123/
2https://wanglinyong.github.io/2018/07/10/Spring-Security%E7%99%BB%E5%BD%95%E8%AE%A4%E8%AF%81%E6%8E%88%E6%9D%83%E5%8E%9F%E7%90%86/

  相关解决方案