2017-03-14 30 views
1

私はSpring BootとThymeleafを使用しています。ユーザーがログインしているとき、私はsrc/main/resources/templates/error/404.htmlSpring Security 404ページ(認証されていないユーザ用)

これが正しく動作で定義されたカスタム404テンプレートページを持っている。しかし、

、彼らがログアウトしているとき、彼らは404ページの任意の型を得ることはありません、彼らはちょうど戻ってリダイレクトされます〜/login

私のセキュリティ設定は変更する必要があるとはっきりしないと思っています。

答えて

2

まずはJavaの設定を使用してSpringアプリケーションのセキュリティを設定する際にインデントを使用することをおすすめします。読みやすくするために役立ちます。

最初のインデントのすべての最上位メソッド(authRequest、formLogin、logout)はすべて、HTTPオブジェクト自体を構成/更新します。これらの要素はすべてorg.springframework.security.config.annotation.web.builders.HttpSecurityクラスからのものです。

これらのクラスの子は、HTTPセキュリティ設定をさらに絞り込みます。

http 
.authorizeRequests() 
    .antMatchers("/","/register*","/resetPassword","/forgotPassword","/login","/404") 
    .permitAll() 
    .antMatchers("/admin/**").hasAuthority("ADMIN") 
    .anyRequest().authenticated() // <-------- 
    .and() 
.formLogin() 
    .loginPage("/login") 
    .failureUrl("/login?error") 
    .defaultSuccessUrl("/dashboard") 
    .usernameParameter("email").passwordParameter("password") 
    .and() 
.logout() 
    .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) 
    .logoutSuccessUrl("/login?logout") 
    .and() 
.exceptionHandling() 
    .accessDeniedPage("/access-denied"); 

.anyRequest().authenticated()、具体的にどんな要求が認証されなければならないことを述べて。したがって、あなたのドメイン上に見つからないURLに移動しようとすると、404ページに行くのではなくログインするように求められます。

その文を削除して、欠落しているURLページに移動しようとすると、404ページにリダイレクトされます。

関連する問題