Ik ben Spring Security aan het instellen om inloggende gebruikers af te handelen. Ik heb me aangemeld als gebruiker en krijg een foutpagina Toegang geweigerd nadat ik me heb aangemeld. Ik weet niet welke rollen mijn gebruiker daadwerkelijk is toegewezen, of de regel die ervoor zorgt dat toegang wordt geweigerd, omdat ik niet weet hoe ik foutopsporing voor de Spring Security-bibliotheek kan inschakelen.
Mijn beveiligings-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>
Ik heb ook geprobeerd log4j.logger.org.springframework.security=DEBUG
toe te voegen aan mijn log4j.properties
Hoe kan ik debug-output voor Spring Security krijgen?
Antwoord 1, autoriteit 100%
Ervan uitgaande dat u Spring Boot gebruikt, is een andere optie om het volgende in uw application.properties
te plaatsen:
logging.level.org.springframework.security=DEBUG
Dit geldt ook voor de meeste andere Spring-modules.
Als u Spring Boot niet gebruikt, probeer dan de eigenschap in uw logboekconfiguratie in te stellen, b.v. log terug.
Hier is ook de application.yml-versie:
logging:
level:
org:
springframework:
security: DEBUG
Antwoord 2, autoriteit 39%
U kunt eenvoudig ondersteuning voor foutopsporing inschakelen met een optie voor de annotatie @EnableWebSecurity
:
@EnableWebSecurity(debug = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
…
}
Antwoord 3, autoriteit 12%
Basisfoutopsporing met Spring’s DebugFilter
kan als volgt worden geconfigureerd:
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.debug(true);
}
}
Antwoord 4, autoriteit 3%
U kunt eenvoudig ondersteuning voor foutopsporing inschakelen met een optie voor de @EnableWebSecurity-annotatie:
@EnableWebSecurity(debug = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
…
}
Als u profielspecifieke controle nodig heeft, vindt u in uw application-{profile}.properties-bestand
org.springframework.security.config.annotation.web.builders.WebSecurity.debugEnabled=false
Gedetailleerde post ontvangen: http://www .bytefold.com/enable-disable-profile-specific-spring-security-debug-flag/
Antwoord 5
We kunnen altijd de geregistreerde filters binnen Spring Security controleren met de onderstaande configuratie
- @EnableWebSecurity(debug=true)– We moeten het debuggen van de beveiligingsdetails inschakelen
- Schakel het loggen van de details in door de onderstaande eigenschap toe te voegen aan de application.propertieslogging.level.org.springframework.security.web.FilterChainProxy=DEBUG
Hieronder worden enkele van de interne filters van Spring Security genoemd die worden uitgevoerd in de authenticatiestroom:
Security filter chain: [
CharacterEncodingFilter
WebAsyncManagerIntegrationFilter
SecurityContextPersistenceFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
X509AuthenticationFilter
UsernamePasswordAuthenticationFilter
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
RememberMeAuthenticationFilter
AnonymousAuthenticationFilter
SessionManagementFilter
ExceptionTranslationFilter
FilterSecurityInterceptor
]
Antwoord 6
Voorjaarsbeveiligingsregistratie voor webflux-reactieve apps is nu beschikbaar vanaf versie 5.4.0-M2 (zoals vermeld door @bzhuin reactie Hoe schakel ik logboekregistratie in voor Spring Security?)
Totdat dit in een GA-release komt, volgt hier hoe u deze mijlpaalrelease in gradle kunt krijgen
repositories {
mavenCentral()
if (!version.endsWith('RELEASE')) {
maven { url "https://repo.spring.io/milestone" }
}
}
// Force earlier milestone release to get securing logging preview
// https://docs.spring.io/spring-security/site/docs/current/reference/html5/#getting-gradle-boot
// https://github.com/spring-projects/spring-security/pull/8504
// https://github.com/spring-projects/spring-security/releases/tag/5.4.0-M2
ext['spring-security.version']='5.4.0-M2'
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}