私は安らかなサービスにspring oauth2を追加しました。ほとんどのサービスは私自身のポータルで消費されるので、apiを呼び出してトークンを取得するのは問題ありません。しかし、私はこのトークンの概念なしで呼び出さなければならないいくつかのWebサービスを公開しています。それらの消費者はユーザー名とパスワードを持っています。スプリングoauth2とダイジェスト認証が一緒に動作する
スワッガーの実装例が最も優れています。スワッガーページを開くには、oauthトークンの代わりにダイジェストを使用して認証する必要があります。
私は以下のコードを変更しましたが、動作しません。 この場合、リソースサーバーからoauthサーバーを呼び出す必要はありません。リソースサーバー内で以下のコードを作成しました。しかし、認証ページが自分の資格情報を受け入れた後、同じ認証ページに再度ルーティング/リダイレクトされるような問題が見られました。
助けてください。 UPDATE
@Configuration
@EnableResourceServer
public class ResourceServerImpl extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.anonymous().disable().requestMatchers().antMatchers("/**").and().authorizeRequests()
.antMatchers(HttpMethod.POST, "/url1/path1/path2").hasAnyAuthority("FUNCTION_FN1")
.antMatchers(HttpMethod.GET, "/url2/path1/path2").hasAnyAuthority("FUNCTION_FN2")
.antMatchers("/swagger-ui.html").hasRole("USER")
.anyRequest().authenticated()
.and().formLogin().and().httpBasic()
.and().exceptionHandling().accessDeniedHandler(new OAuth2AccessDeniedHandler());
}
}
@Configuration
@EnableWebSecurity
public class OAuth2SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
protected void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{
auth.inMemoryAuthentication().withUser("user").password("password").roles("USER");
}
}
私は、これはDIGESTといくつかのOAuthのであると認証されるいくつかの要求を行うことが可能であると思ういけません。だから私は、ダイジェストサポートの代わりにoauthトークンで認証されるために、今も笑いのURLを作った。
あなたが設定に関するすべてのコードを提供しなかったので、なぜあなたは私がしなければならないものを、コードの変更*求めるだろうdo?* –
@AtaurRahmanMunna確かに、私は提供しますが、それは実現可能です...? –
*ただし、私はいくつかのWebサービス*を公開しています* - エンドポイントは他の消費者とoauth2の消費者の間で異なります。 –