Je suis en train de configurer Spring Security pour gérer la connexion des utilisateurs. Je me suis connecté en tant qu'utilisateur et je suis dirigé vers une page d'erreur Accès refusé après une connexion réussie. J'ignore quels rôles ont été effectivement attribués à mon utilisateur ou quelle est la règle qui entraîne le refus de l'accès, car je ne vois pas comment activer le débogage pour la bibliothèque Spring Security.
Mon xml de sécurité:
<?xml version="1.0" encoding="UTF-8"?>
<beans ... >
<!-- security -->
<security:debug/><!-- doesn't seem to be working -->
<security:http auto-config="true">
<security:intercept-url pattern="/Admin**" access="hasRole('PROGRAMMER') or hasRole('ADMIN')"/>
<security:form-login login-page="/Load.do"
default-target-url="/Admin.do?m=loadAdminMain"
authentication-failure-url="/Load.do?error=true"
username-parameter="j_username"
password-parameter="j_password"
login-processing-url="/j_spring_security_check"/>
<security:csrf/><!-- enable Cross Site Request Forgery protection -->
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="loginDataSource"
users-by-username-query="SELECT username, password, active FROM userinformation WHERE username = ?"
authorities-by-username-query="
SELECT ui.username, r.rolename
FROM role r, userrole ur, userinformation ui
WHERE ui.username=?
AND ui.userinformationid = ur.userinformationid
AND ur.roleid = r.roleid "
/>
<security:password-encoder hash="md5"/>
</security:authentication-provider>
</security:authentication-manager>
</beans>
J'ai aussi essayé d'ajouter log4j.logger.org.springframework.security=DEBUG
à mon log4j.properties
Comment obtenir une sortie de débogage pour Spring Security?
Une autre option est de mettre le texte suivant dans votre application.properties
:
logging.level.org.springframework.security=DEBUG
Il en va de même pour la plupart des autres modules Spring.
Vous pouvez facilement activer le support de débogage en utilisant une option pour le @EnableWebSecurity
annotation:
@EnableWebSecurity(debug = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
…
}
Le débogage de base à l'aide de DebugFilter
de Spring peut être configuré comme suit:
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.debug(true);
}
}