私はSpring Securityで初めての試みをしており、本当にそのようなタスクに苦しんでいます。私はデフォルトのWebページを持っています。これはデフォルトでは認証されていないはずです。 PreAuthorizedアノテーションで保護したいと思っています。基本的な考え方は、デフォルトの「ログインページへのリダイレクト」を無効にしたいが、Spring Securityのメソッドセキュリティ複合体を操作する機会はまだあるということです。Spring Securityはhttpsecurityを設定します
私はのように見えた、Javaの設定を使用しています:
@Configuration
@EnableWebSecurity
public class SpringWebSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/res/**"); // #3
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/**").authorizeRequests().anyRequest().permitAll();
}
}
を、私はこの上に座ってきた(この時点で私のすべてのコールが許可されなければならないことを知っている(または理解しているようです)過去2日間、そして明確にアイデアがなくなった)。
私は確保したい[コントローラのメソッドは、次のとおりです。
@PreAuthorize("hasRole('ADMIN')")
@RequestMapping(value="/admin", method = RequestMethod.GET)
public String getAdminPage(Model model){
return "admin";
}
私は「/ **/admin」を追加して、特定のURLへの呼び出しを許可するantMatcherを使用できることを知っているが、
- ルート(およびその他のランダムコントローラのマッピング)の[ログインページに移動]を無効にします。
- ajaxドロップダウン(または何か)から手動でajaxベースの認証を行います。
- ランダムに非自認のユーザーがコントローラに@PreAuthorizedを持つページをバンプするとき、そのときだけ、リダイレクトする必要があります。
UPD:基本的な質問は、アクセス拒否シナリオでのみリダイレクトログインページを呼び出すことで、基本的なサイトビューとコールの匿名の役割を許可します。