web-dev-qa-db-ja.com

Spring Securityのログを有効にするにはどうすればよいですか?

ユーザーのログインを処理するために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のデバッグ出力を取得するにはどうすればよいですか?

54
Martin Carney

別のオプションは、application.propertiesに以下を入れることです:

logging.level.org.springframework.security=DEBUG

これは、他のほとんどのSpringモジュールでも同じです。

92
delucasvb

@EnableWebSecurityアノテーションのオプションを使用して、デバッグサポートを簡単に有効にできます。

@EnableWebSecurity(debug = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    …
}
49
Michael Piefel

SpringのDebugFilterを使用した基本的なデバッグは、次のように構成できます。

@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.debug(true);
    }
}
21
cardil