私はSpring Boot Oauth2チュートリアルをいじっていましたが、かなり重要な要素が機能していないようです:
https://spring.io/guides/tutorials/spring-boot-oauth2/
認可サーバーとして実行したい。理解できる限り厳密に指示に従いましたが、/oauth/authorize エンドポイントに移動すると、403 Forbidden 応答しか返されません。これは、チュートリアルでセットアップされた HttpSecurity 構成を考えると、実際には理にかなっています。
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/**")
.authorizeRequests()
.antMatchers("/", "/login**", "/webjars/**")
.permitAll()
.anyRequest()
.authenticated()
.and().logout().logoutSuccessUrl("/").permitAll()
.and().csrf().csrfTokenRepository(csrfTokenRepository())
.and().addFilterAfter(csrfHeaderFilter(), CsrfFilter.class)
.addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class);
}
このチュートリアルのログイン ページは、実際にはメイン インデックスであり、Oauth システムにログイン フローをそこにリダイレクトするように指示するチュートリアルはまったくありません。
これを追加することで、ある種の機能を得ることができます:
.and().formLogin().loginPage("/")
...しかし、先に進む前に、これがチュートリアルの問題なのか、私の実装の問題なのか、それとも何か他の問題なのかを本当に理解したかったのです。Oauth セキュリティ システムが「ログイン」ページを決定するメカニズムは何ですか?