Durante la migrazione di un'applicazione legacy alla primavera di sicurezza ho ottenuto la seguente eccezione:Come utilizzare ruoli/autorità personalizzati in 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)
Nella vecchia applicazione ci sono ruoli come "superadmin", "editore", "helpdesk", ecc Ma in tutti gli esempi Primavera di sicurezza Vedo solo ruoli come "ROLE_" ("ROLE_ADMIN" ecc.). Quando rinomina "superadmin" a "ROLE_ADMIN" e uso solo questo ruolo nella configurazione, tutto funziona.
non funziona:
<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>
Works:
<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>
è possibile utilizzare nomi dei ruoli personalizzati?
Questo [domanda] (http://stackoverflow.com/questions/283870/acegi-security-how-do-i-add -un altro-concedere l'autorizzazione all'autenticazione all'anonimo) può aiutare. – kgiannakakis