Estou configurando o Spring Security para lidar com o login de usuários. Fiz login como um usuário e fui levado a uma página de erro Acesso negado após o login bem-sucedido. Não sei quais funções meu usuário realmente foi atribuído, ou a regra que faz com que o acesso seja negado, porque não consigo descobrir como habilitar a depuração para a biblioteca Spring Security.
Meu xml de segurança:
<?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>
Também tentei adicionar log4j.logger.org.springframework.security=DEBUG
ao meu log4j.properties
Como posso obter saída de depuração para Spring Security?
debugging
spring-security
Martin Carney
fonte
fonte
Respostas:
Supondo que você esteja usando Spring Boot, outra opção é colocar o seguinte em
application.properties
:Este é o mesmo para a maioria dos outros módulos Spring também.
Se você não estiver usando Spring Boot, tente definir a propriedade em sua configuração de registro, por exemplo, logback.
Aqui está a versão do application.yml também:
fonte
application.properties
é um recurso do Spring Boot. Se você não usa Spring Boot, você pode definir o nível de logorg.springframework.security
por outros meios (por exemplo, em seu logback.xml).org.springframework.web.cors
para habilitar os logs do processador Cors.Você pode habilitar facilmente o suporte à depuração usando uma opção para a
@EnableWebSecurity
anotação:@EnableWebSecurity(debug = true) public class SecurityConfiguration extends WebSecurityConfigurerAdapter { … }
fonte
EnableWebFluxSecurity
, ele não tem a opção de depuraçãoA depuração básica usando Spring
DebugFilter
pode ser configurada assim:fonte
Você pode habilitar facilmente o suporte à depuração usando uma opção para a anotação @EnableWebSecurity:
Se você precisar de controle específico de perfil em seu arquivo de aplicativo- {profile} .properties
Obtenha uma postagem detalhada: http://www.bytefold.com/enable-disable-profile-specific-spring-security-debug-flag/
fonte
O registro de segurança Spring para aplicativos reativos webflux agora está disponível a partir da versão 5.4.0-M2 (conforme mencionado por @bzhu no comentário Como faço para habilitar o registro para Spring Security? )
Até que chegue em uma versão GA, aqui está como obter esta versão milestone no gradle
fonte
Por padrão, o Spring Security redireciona o usuário para a URL que ele solicitou originalmente (/Load.do no seu caso) após o login.
Você pode definir always-use-default-target como true para desativar este comportamento:
fonte