Я настраиваю Spring Security для обработки входа пользователей в систему. Я вошел в систему как пользователь и после успешного входа в систему попадаю на страницу с ошибкой «Доступ запрещен». Я не знаю, какие роли на самом деле были назначены моему пользователю, или правила, которое вызывает отказ в доступе, потому что я не могу понять, как включить отладку для библиотеки Spring Security.
Моя безопасность xml:
<?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>
Я также пробовал добавить log4j.logger.org.springframework.security=DEBUG
в свой log4j.properties
Как я могу получить отладочные данные для Spring Security?
debugging
spring-security
Мартин Карни
источник
источник
Ответы:
Предполагая, что вы используете Spring Boot, другой вариант - добавить в ваш
application.properties
:То же самое и для большинства других модулей Spring.
Если вы не используете Spring Boot, попробуйте установить свойство в конфигурации ведения журнала, например, logback.
Вот и версия application.yml:
источник
application.properties
- это функция Spring Boot. Если вы не используете Spring Boot, вы можете установить уровеньorg.springframework.security
журнала другими способами (например, в вашем logback.xml).org.springframework.web.cors
чтобы включить журналы процессора Cors.Вы можете легко включить поддержку отладки, используя опцию
@EnableWebSecurity
аннотации:@EnableWebSecurity(debug = true) public class SecurityConfiguration extends WebSecurityConfigurerAdapter { … }
источник
EnableWebFluxSecurity
, у него нет опции отладкиБазовую отладку с использованием Spring
DebugFilter
можно настроить следующим образом:источник
Вы можете легко включить поддержку отладки, используя параметр аннотации @EnableWebSecurity:
Если вам нужно управление для конкретного профиля, в файле приложения- {profile} .properties
Получить подробный пост: http://www.bytefold.com/enable-disable-profile-specific-spring-security-debug-flag/
источник
Ведение журнала безопасности Spring для реактивных приложений webflux теперь доступно, начиная с версии 5.4.0-M2 (как указано @bzhu в комментарии Как включить ведение журнала для Spring Security? )
Пока это не войдет в выпуск GA, вот как получить этот этапный выпуск в gradle
источник
По умолчанию Spring Security перенаправляет пользователя на URL-адрес, который он изначально запрашивал (/Load.do в вашем случае) после входа в систему.
Вы можете установить для always-use-default-target значение true, чтобы отключить это поведение:
источник