如何在Spring Security中使用自定义角色/权限?

在将旧版应用程序迁移到Spring Security时,出现以下异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_filterChainProxy': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_filterChainList': Cannot resolve reference to bean '_filterSecurityInterceptor' while setting bean property 'filters' with key [3]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_filterSecurityInterceptor': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Unsupported configuration attributes: [superadmin]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)

at java.security.AccessController.doPrivileged(Native Method)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)

在旧的应用程序中,角色有“超级管理员”,“编辑者”,“帮助台”等。但是在所有Spring Security示例中,我只看到诸如“ ROLE _”(“ ROLE_ADMIN”等)的角色。当我将“ superadmin”重命名为“ ROLE_ADMIN”并且仅在配置中使用此角色时,一切正常。

不起作用:

 <http auto-config="true">                                      

<intercept-url pattern="/restricted/**" access="superadmin"/>

<form-login

authentication-failure-url="/secure/loginAdmin.do?error=true"

login-page="/secure/loginAdmin.do" />

</http>

作品:

<http auto-config="true">                                      

<intercept-url pattern="/restricted/**" access="ROLE_ADMIN"/>

<form-login

authentication-failure-url="/secure/loginAdmin.do?error=true"

login-page="/secure/loginAdmin.do" />

</http>

可以使用自定义角色名称吗?

回答:

你正在使用默认配置,该配置期望角色以"ROLE_"前缀开头。你将必须添加自定义安全配置并将其设置rolePrefix为“”;

以上是 如何在Spring Security中使用自定义角色/权限? 的全部内容, 来源链接: utcz.com/qa/431929.html

回到顶部