第 9 章 授权模块
以下模块提供授权服务:
| Code | class |
|---|---|
| DenyAll | org.jboss.security.authorization.modules.AllDenyAuthorizationModule |
| PermitAll | org.jboss.security.authorization.modules.AllPermitAuthorizationModule |
| 委派 | org.jboss.security.authorization.modules.DelegatingAuthorizationModule |
| Web | org.jboss.security.authorization.modules.web.WebAuthorizationModule |
| JACC | org.jboss.security.authorization.modules.JACCAuthorizationModule |
| XACML | org.jboss.security.authorization.modules.XACMLAuthorizationModule |
- AbstractAuthorizationModule
-
这是基础授权模块,必须覆盖,并提供委派至其他授权模块的功能。此基础授权模块还为覆盖类提供
delegateMap属性,允许为特定组件声明委派模块。这可以使更为专业的类来处理每个层的授权,如web和ejb等,因为用于授权用户的信息可能会因所访问的资源而异。例如,授权模块可以基于权限,但具有不同的Web和ejb资源权限类型。默认情况下,授权模块将强制处理所有可能的资源和权限类型,但配置delegateMap选项允许该模块委派给不同资源类型的特定类。delegateMap选项采用以逗号分隔的模块列表,每个模块都带有其相关组件的前缀,例如<module-option name="delegateMap">web=xxx.yyy.Myyy.MyWebDelegate,ejb=xxxx.yyEJBDelegate</module-option>。
在配置 delegateMap 选项时,每个委派必须实施 authorize(Resource) 方法,并让它像提供的授权模块一样 调用 invocationDelegate(Resource) 方法。如果不这样做,则会导致委派不会被调用。
- AllDenyAuthorizationModule
- 这是一个简单的授权模块,始终拒绝授权请求。没有可用的配置选项。
- AllPermitAuthorizationModule
- 这是一个简单的授权模块,始终允许授权请求。没有可用的配置选项。
- DelegatingAuthorizationModule
- 这是将决策委派给配置委托的默认授权模块。此模块也支持 delegateMap 选项。
- WebAuthorizationModule
- 这是具有默认 Tomcat 授权逻辑的默认 Web 授权模块,允许所有操作。
- JACCAuthorizationModule
-
此模块使用两个代表实施 Jakarta 授权语义:
WebJACCPolicyModuleDelegate用于 Web 容器授权请求,以及针对 Jakarta Enterprise Beans 容器请求的 EJBJACCPolicyModuleDelegate。此模块也支持delegateMap选项。
- XACMLAuthorizationModule
-
此模块通过两个代表来实施 XACML 授权,这些代表负责 Web 和 Jakarta Enterprise Beans 容器,
WebXACMLPolicyModuleDelegate和EJBXACMLPolicyModuleDelegate。它根据注册的策略创建一个 PDP 对象,并评估针对它的 web 或 Jakarta Enterprise Beans 请求。此模块也支持delegateMap选项。