2016-08-19 21 views
1

特定の休憩のエンドポイントを、特定のグループのLDAPユーザーのみに制限したいとします。スプリングブートLDAPグループと制限付きエンドポイント

ガイドhttps://spring.io/guides/gs/authenticating-ldap/に沿って、完全に動作するLDAP認証をセットアップしました。では、どのように特定の休憩のエンドポイントを制限するのですか?

私は

@PreAuthorize("hasRole('developers')") 
@RequestMapping("/foo") 
public String foo(HttpServletRequest request) { 
    return "Welcome to FOO " + request.getRemoteUser(); 
} 

を試みたが、それはまだ、ユーザーがあなたのような何かにあなたのWebSecurityConfigurerAdapter設定を変更することができ

答えて

0

@EnableGlobalMethodSecurity(securedEnabled=true)をwebSecurityConfigに追加する必要がありました。私がそれをしたら、私は@Secured("ROLE_DEVELOPERS")を使用することができ、その方法はその役割に制限されていました。

0

エンドポイントの開発者グループにアクセスしていないことができます:

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http 
     .authorizeRequests() 
      .anyRequest().fullyAuthenticated() 
      .and() 
      .antMatchers("/foo").hasRole("developers") 
      .and() 
     .formLogin(); 
} 

私はないです構文が正確かどうか、最初のルールが2番目のルールを上書きするかどうかを確認しますが、それと似ています。

または、メソッドベースでセキュリティを設定することもできます(this sampleなど)。

+0

それでも、すべてのユーザーが/ fooにアクセスすることができます – user971169

+0

注文を変更するとうまくいくようです。 formLogin()。および()。httpBasic().AllMatchers( "DEVELOPERS").AllMatchers( "/ **").AllMatchers( "/ foo")。 ); ' – user971169