一、Permission字符串

1、格式

资源:权限:操作
(常用格式是:)

  1. 资源 :指系统中需要被保护的对象、数据或服务等。资源可以是一个统称,也可以是具体的对象。
  2. 权限 :指对资源所具备的操作功能,用于限制对资源的访问和使用。权限可以是一个动词或描述性词语。需要准确表示权限的作用或功能。
  3. 操作:指执行某个权限对应的具体行为,如CRUD。

通配符(*)表示一个或多个。

2、具体示例

3、其他分隔符

  1. 使用"/"作为分隔符
    一种层次结构路径,显示权限是如何在资源之间划分的。
    例如,posts/view/read

  2. 使用"."作为分隔符
    通常适用于具有明确定义的对象或资源层次结构的系统,使权限更像分层组件或命名空间。
    例如,posts.view.read

疑惑:上面3种形式(:/.),在实际开发中应该用那种分隔符?
回答:个人理解,用那种都行,主要根据系统最开始时怎么定义,想用那种都行。

二、认证授权的相关内容

1、权限与URI,以及URL的区别

  • 权限(permission):在 其他分隔符 中,有用"/"作为分割符,与URL和URI的样式很相似,但它主要还是作为权限的字符串。
  • URI:唯一标识一个资源。。

注意:

在实际开发中,权限(permission)和URI是结合使用的。

@Bean
public FilterChainDefinitionMap createFilterChainDefinitionMap() {
    Map<String, String> filterChainMap = new LinkedHashMap<>();
    filterChainMap.put("/public/**", "anon");
    filterChainMap.put("/admin/**", "authc,roles[admin]");
    filterChainMap.put("/**", "authc");
    return new DefaultFilterChainDefinitionMap(filterChainMap);
}

在上面的例子中,我们将 /public/** 路径下的 URI 设置为不需要认证即可访问(anon),
/admin/** 路径下的 URI 设置为 需要认证 和拥有 admin 权限才能访问(authc,roles[admin]),
将其他所有路径下的 URI 设置为需要认证才能访问(authc)。

2、认证和授权过滤器名称

3、授权方式

主要有4种:

下面主要介绍注解式和基于URI拦截。

1、注解式

2、基于URI拦截

05-09 19:29