Estoy configurando Spring Security para manejar el inicio de sesión de los usuarios. He iniciado sesión como usuario y se me lleva a una página de error Acceso denegado después de iniciar sesión correctamente. No sé qué roles se le han asignado realmente a mi usuario, o la regla que hace que se niegue el acceso, porque no puedo averiguar cómo habilitar la depuración para la biblioteca de Spring Security.
Mi xml de seguridad:
<?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>
También intenté agregar log4j.logger.org.springframework.security=DEBUG
a mis log4j.properties
¿Cómo puedo obtener resultados de depuración para Spring Security?
debugging
spring-security
Martin Carney
fuente
fuente
Respuestas:
Suponiendo que está usando Spring Boot, otra opción es poner lo siguiente en su
application.properties
:Esto también es lo mismo para la mayoría de los otros módulos Spring.
Si no está utilizando Spring Boot, intente establecer la propiedad en su configuración de registro, por ejemplo, logback.
Aquí está también la versión application.yml:
fuente
application.properties
es una función de Spring Boot. Si no usa Spring Boot, puede configurar el nivel de registroorg.springframework.security
por otros medios (por ejemplo, en su logback.xml).org.springframework.web.cors
para habilitar los registros del procesador de Cors.Puede habilitar fácilmente el soporte de depuración usando una opción para la
@EnableWebSecurity
anotación:@EnableWebSecurity(debug = true) public class SecurityConfiguration extends WebSecurityConfigurerAdapter { … }
fuente
EnableWebFluxSecurity
tal si no tiene la opción de depuración?La depuración básica con Spring
DebugFilter
se puede configurar así:fuente
Puede habilitar fácilmente el soporte de depuración usando una opción para la anotación @EnableWebSecurity:
Si necesita un control específico del perfil en su aplicación- {profile} .properties file
Obtenga publicación detallada: http://www.bytefold.com/enable-disable-profile-specific-spring-security-debug-flag/
fuente
El registro de seguridad de Spring para aplicaciones reactivas de webflux ahora está disponible a partir de la versión 5.4.0-M2 (como lo menciona @bzhu en el comentario ¿Cómo habilito el registro para Spring Security? )
Hasta que esto llegue a una versión de GA, aquí se explica cómo obtener esta versión de hito en gradle
fuente
De forma predeterminada, Spring Security redirige al usuario a la URL que solicitó originalmente (/Load.do en su caso) después de iniciar sesión.
Puede establecer always-use-default-target en true para deshabilitar este comportamiento:
fuente