基本認証にSpringセキュリティを使用して、春のブートRESTアプリケーションを保護しようとしています。春のブート(デフォルト)のセキュリティ設定を無効にすることができません
デフォルトの基本認証は、単純に次の依存関係に
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
を差し込むことによって動作し、次のステップは、いくつかのカスタム資格情報(ユーザー名、パスワード)と春ブーツが提供するデフォルトの認証資格情報を上書きすることです。
私はこの使用して試してみました:
@RestController
@SpringBootApplication
public class Controller {
// request mappings and other code here
public static void main(String[] args) {
SpringApplication.run(Controller.class, args);
}
}
私が午前問題は、私はカスタムのもので、デフォルトの資格情報を上書きすることができませんということです。
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
@Autowired
public void configure (AuthenticationManagerBuilder authBuilder) throws Exception {
authBuilder.inMemoryAuthentication()
.withUser("aide").password("aide").roles("USER").and()
.withUser("pervacio").password("pervacio").roles("ADMIN");
}
@Override
@Autowired
protected void configure (HttpSecurity http) throws Exception {
http.httpBasic().and()
.authorizeRequests()
.antMatchers(HttpMethod.POST, "/search").hasRole("ADMIN")
.and().csrf().disable();
}
}
は、ここに私のコントローラです。
どうすればよいですか?
他の投稿はconfigure
の方法にAutowired
の注釈を付けることを提案していますが、それは私のためには機能しません。
私は間違っていますか?私はofficial exampleに従って上記のアプローチを試みました。
あなたはどのような動作をしていますか?例外が発生した場合、またはカスタム認証情報でユーザーを認証できない場合 –
@ChathurangaTennakoonは尋ねてくれてありがとう。デフォルトのユーザ名(つまり、 'user')とデフォルトの(ランダムに生成された)パスワードは、承認されたものです。上記の 'SecurityConfiguration'で定義された私のカスタム認証情報は' 401 Unauthorized(Bad Credentials) 'レスポンスを取得します。 –
あなたはスプリングベースのログインフォームを共有できますか?私はそれに夢中になる必要がありますか?あなたはカスタムログインフォームまたは春のセキュリティを使用して、自動的にログインフォームを生成していますか? –