Ich richte Spring Security für die Anmeldung von Benutzern ein. Ich habe mich als Benutzer angemeldet und werde nach erfolgreicher Anmeldung zu einer Fehlerseite mit Zugriffsverweigerung weitergeleitet. Ich weiß nicht, welche Rollen meinem Benutzer tatsächlich zugewiesen wurden oder welche Regel dazu führt, dass der Zugriff verweigert wird, da ich nicht herausfinden kann, wie das Debuggen für die Spring Security-Bibliothek aktiviert werden kann.
Meine Sicherheits-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>
Ich habe auch versucht log4j.logger.org.springframework.security=DEBUG
, meine log4j.properties zu erweitern
Wie kann ich eine Debug-Ausgabe für Spring Security erhalten?
debugging
spring-security
Martin Carney
quelle
quelle
Antworten:
Angenommen, Sie verwenden Spring Boot, können Sie Folgendes in Ihr Feld einfügen
application.properties
:Dies gilt auch für die meisten anderen Federmodule.
Wenn Sie Spring Boot nicht verwenden, versuchen Sie, die Eigenschaft in Ihrer Protokollierungskonfiguration festzulegen, z. B. Logback.
Hier ist auch die application.yml-Version:
quelle
application.properties
ist eine Spring Boot-Funktion. Wenn Sie Spring Boot nicht verwenden, können Sie die Protokollstufe auforg.springframework.security
andere Weise festlegen (z. B. in Ihrer logback.xml).org.springframework.web.cors
, um Cors-Prozessorprotokolle zu aktivieren.Sie können die Debugging-Unterstützung einfach aktivieren, indem Sie eine Option für die
@EnableWebSecurity
Anmerkung verwenden:@EnableWebSecurity(debug = true) public class SecurityConfiguration extends WebSecurityConfigurerAdapter { … }
quelle
EnableWebFluxSecurity
, es hat nicht die Debug-OptionDas grundlegende Debuggen mit Spring
DebugFilter
kann folgendermaßen konfiguriert werden:quelle
Sie können die Debugging-Unterstützung einfach aktivieren, indem Sie eine Option für die Annotation @EnableWebSecurity verwenden:
Wenn Sie eine profilspezifische Steuerung benötigen, verwenden Sie die in Ihrer Anwendung {Profil} .properties- Datei
Detaillierten Beitrag erhalten: http://www.bytefold.com/enable-disable-profile-specific-spring-security-debug-flag/
quelle
Die Spring Security-Protokollierung für reaktive Webflux-Apps ist ab Version 5.4.0-M2 verfügbar (wie von @bzhu im Kommentar erwähnt. Wie aktiviere ich die Protokollierung für Spring Security? )
Bis dies zu einer GA-Version wird, erfahren Sie hier, wie Sie diese Meilenstein-Version in Gradle erhalten
quelle
Standardmäßig leitet Spring Security den Benutzer nach der Anmeldung zu der URL weiter, die er ursprünglich angefordert hatte (in Ihrem Fall /Load.do).
Sie können always-use-default-target auf true setzen, um dieses Verhalten zu deaktivieren:
quelle