2016-10-07 7 views
0

私は春のブートセキュリティで少し演奏しました。そして、私はmongodb、spring-boot-starter-data-rest、spring-boot-starter-security、spring-boot-starter-webを使用します。私は、RESTサービスのような自動公開レポジトリの可能性を使用しました。私は2つのリポジトリのユーザーと顧客を持っています。ユーザーリポジトリはアカウント用です。 した後、このような拡張WebSecurityConfigurerAdapter:春のブートでサービスを休止するアクセス制御

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    super.configure(http); 
    http.authorizeRequests() 
    .antMatchers("https://stackoverflow.com/users/**") 
    .hasRole("ADMIN").antMatchers("/", "/customers") 
    .hasRole("USER") 
    .anyRequest().authenticated() 
    .and() 
    .formLogin().permitAll(); 
} 

Aは、彼らがADMINの役割を持っているユーザーと/ユーザー/ページへのアクセスを制御することはできません。私はサービスにアクセスする際に認証を取得しましたが、すべてのユーザーがすべてのロールであらゆる場所にアクセスできます。何がまだ設定されるべきですか?

答えて

1

これは、あなたが春のセキュリティのMethod Security Expressionsの機能を見てみるように聞こえます。特に注釈@PreAuthorize/@PostAuthorize

+0

はい、どのクラスからのメソッドに?エンティティクラスusers.javaとcustomer.javaだけがあります。私は自動生成RESTを使用しますか? – vmaric

+0

したがって、Spring Data JPAリポジトリを明示的に使用してコントローラ+サービス層を明示的に実装する必要があります。その後、 '@ PreAuthorize' /' @ PostAuthorize'に最適な場所はサービスレイヤメソッドです。 – luboskrnac

+0

MongoDB自動エクスポージャーエンティティ(RESTを生成したもの)を使用できません。アクセスコントロールを実装したいと思いますか? – vmaric

関連する問題