gpt4 book ai didi

java - Spring Security 3.1 中的默认角色

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:02 28 4
gpt4 key购买 nike

Spring 3.1 Security contact 示例在其 applicationContext-security.xml 中使用了几个角色:

<intercept-url pattern="/" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/index.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/hello.htm" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/switchuser.jsp" access="ROLE_SUPERVISOR"/>
<intercept-url pattern="/j_spring_security_switch_user" access="ROLE_SUPERVISOR"/>
<intercept-url pattern="/**" access="ROLE_USER"/>

这些 IS_AUTHENTICATED_ANONYMOUSLY、ROLE_SUPERVISOR、ROLE_USER 角色在哪里定义?这些默认角色是由 Spring Security 创建的吗?

最佳答案

IS_AUTHENTICATED_ANONYMOUSLYAuthenticatedVoter 中定义类。
各种ROLE_xxxx 没有特殊含义。

Spring Security 默认建议这些角色,因为它们在大多数应用程序中使用。
但是,您可以自由定义和使用自定义角色(即 ROLE_SUPERMAN)。
您只需确保 UserDetailService 返回的 UserDetail 将此 ROLE 指定为 GrantedAuthority(来自数据库或手动)。

其实ROLE就是前缀。如果您想将其更改为 APP(即 APP_ADMIN),您必须定义自定义 AppVoter:

<bean class="org.springframework.security.vote.RoleVoter">
<property name="rolePrefix" value="APP"/>
</bean>

关于java - Spring Security 3.1 中的默认角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577506/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com