残りのAPIで認証を受けるのに苦労しています。私はSpring Bootとmavenを使用してまとめました。私はまったく認証されることができません。ここでスプリングブートの完全な認証の問題 - どこが間違っているのかわからない
は私の現在のセキュリティ設定です:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/person/getAll").permitAll()
.anyRequest().authenticated();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
、ここでは、 "/人/のgetAll" エンドポイント...今
@RequestMapping("/getAll")
List<Person> getAllPeople()
{
log.info("Getting all users in system.");
return repository.findAll();
}
は、私がここに持っているもの、そのエンドポイントであるということです(セキュリティ設定のperminAllセクションに記載されているため) -
しかし、今私は "ROLE_USER" rを持っていなければなりません私の人のリストを取り戻すために。
私はこのメソッドの上に@PreAuthorise( "hasRole( 'ROLE_USER')")を追加しようとしましたが、403レスポンスになります。これは本当に期待していませんでしたすべて。私はそれが私には、以下のカールのいずれかのコマンドを実行して見ることができるようになる考え出しデータ:みんなの健全性のために
curl --user user:password localhost:8080/person/getAll
または
curl user:[email protected]:8080/person/getAll
- 現在、この質問(Iに記載されているように私は、コードを使用する場合データを取り戻す - パスワードが間違っていても、haha)
長期的には、私の目標は実際にメモリのものを取り除き、通常のクエリを実行して認証情報を取得することですが、今。
ここには役立つかもしれない投稿があります。 antMatchers( "/")の前に '.antMatchers("/person/getAll ")。hasRole(" ROLE_USER ")'を入れたいと思うでしょう。antMatchersの順序はhttp: //stackoverflow.com/questions/43052745/how-to-fix-role-in-spring-security/43055173#43055173 – jmw5598