WSO2 Micro-Integrator 7.1.0如何配置API基于角色的访问权限
WSO2 Micro Integrator 7.1.0 API基于角色权限控制配置方案
7.1.0版本已经将旧版本独立的角色授权逻辑整合到了你当前正在使用的RESTBasicAuthHandler组件中,旧版本使用的org.wso2.api.authorization.RoleBasedAuthorizationHandler类在7.1.0版本的内置包中已被移除,直接配置会触发类找不到错误,无需额外引入第三方组件或单独配置授权handler,直接在现有认证handler上增加参数即可实现角色控制。
正确配置示例
直接在原有RESTBasicAuthHandler配置中增加allowedRoles属性,指定允许访问当前API的角色,多个角色用英文逗号分隔:
<handlers> <handler class="org.wso2.micro.integrator.security.handler.RESTBasicAuthHandler"> <!-- 允许访问的角色列表,多角色用英文逗号分隔 --> <property name="allowedRoles" value="testRole"/> <!-- 可选:自定义权限校验失败返回的HTTP状态码,默认值为403 --> <property name="authorizationFailedStatusCode" value="403"/> <!-- 可选:配置跳过权限校验的公开路径,多路径用英文逗号分隔 --> <!-- <property name="skipURIs" value="/your/api/public/health,/your/api/public/version"/> --> </handler> </handlers>
配置生效说明
- 该配置的执行逻辑为:首先校验请求携带的Basic认证信息是否合法,认证不通过直接返回401状态码;认证通过后提取当前用户绑定的所有角色,和
allowedRoles配置的列表做匹配,命中任意一个角色即允许访问,无匹配角色返回权限不足错误。 - 配置的角色需要和你当前MI对接的用户存储(内置用户库、外接JDBC/LDAP用户存储)中存在的角色名完全一致,大小写敏感。
- 不要在handlers链中追加旧版本的RoleBasedAuthorizationHandler配置,否则会导致API部署失败。
内容的提问来源于stack exchange,提问作者Honzaja
相关产品推荐
相关产品推荐

