1

我找到了一些解决方案,但没有一个对我有用。下面的代码给出

"Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Unsupported configuration attributes: [admin]" 

错误。当我将自动配置属性更改为“true”时,再次给出相同的错误。

<http auto-config="false">
    <intercept-url pattern="/pages/login.xhtml*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    <intercept-url pattern="/**" access="admin" />
    <form-login login-page='/pages/login.xhtml' default-target-url="/**"
                authentication-failure-url="/pages/login.xhtml"/>
    <logout logout-success-url="/pages/logout.xhtml" />
</http>

<beans:bean id="roleVoter" class="org.springframework.security.access.vote.RoleVoter">
    <beans:property name="rolePrefix" value=""/>
</beans:bean>
4

2 回答 2

7

您需要通过属性为您自己的决策管理器(例如org.springframework.security.access.vote.AffirmativeBased)提供自定义配置的决策投票者。access-decision-manager-ref="decisionMangerId"

但是请注意,在角色 voter 中没有前缀并不是一个好主意,因为它只会尝试将所有安全属性解释为角色。我强烈建议使用一些前缀,如果不是默认的ROLE_.

use-expressions="true"或者您可以通过使用表达式启用基于表达式的解析access="hasRole('admin')"。这样做时,您还需要使用 更改您的IS_AUTHENTICATED_ANONYMOUSLY条件access="permitAll"

于 2013-06-07T16:05:20.090 回答
3

它应该是:

access="hasRole('admin')"
于 2013-06-07T14:54:39.640 回答