2017-05-17 13 views
0

私は春のブートセキュリティと永遠に闘うと感じています。 私が何をしたいです(@least)非常に簡単です: 3つの異なるセキュリティレベルのREST-サービス: "USER" のためRestService "保護" のすべての SpringBoot + REST +セキュリティ - すべてのアクセスが開かれているかすべて閉じられている

  • Aでアクセス

    • "公共" RestService
    • 「ADMIN」のための「プライベート」RestService

    が、私はすべてへのアクセスを持っているのいずれか - かにBasicAuthがなければ、私はいつも

    を得たので、現在の設定で、私は、NONEにアクセスもしました
    • 全認証がこのリソース

    と、私はいつも私が使用してちなみに

    • 悪い資格情報

    を得た "UUU" + "PPP" とにアクセスするために必要ですスプリングブート1.5.3

    import org.springframework.beans.factory.annotation.Autowired; 
    import org.springframework.context.annotation.Configuration; 
    import org.springframework.http.HttpMethod; 
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 
    import org.springframework.security.config.annotation.web.builders.HttpSecurity; 
    import org.springframework.security.config.annotation.web.builders.WebSecurity; 
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 
    import org.springframework.security.config.http.SessionCreationPolicy; 
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 
    
    @Configuration 
    @EnableWebSecurity 
    public class RestSecurityConfig extends WebSecurityConfigurerAdapter { 
    
        @Autowired 
        public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception { 
         auth.inMemoryAuthentication().withUser("aaa").password("ppp").roles("USER", "ADMIN"); 
         auth.inMemoryAuthentication().withUser("uuu").password("ppp").roles("USER"); 
        } 
    
        @Override 
        protected void configure(HttpSecurity http) throws Exception { 
         http.csrf().disable() 
          .authorizeRequests() 
           .antMatchers("/public/**").permitAll() 
           .antMatchers("/protected/**").hasRole("USER") 
           .antMatchers("/private/**").hasRole("ADMIN") 
          .and().httpBasic() 
          .and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); // We don't need sessions to be created. 
        } 
    
        @Override 
        public void configure(WebSecurity web) throws Exception { 
         web 
          .ignoring() 
           .antMatchers(HttpMethod.OPTIONS, "/**"); /* To allow Pre-flight [OPTIONS] request from browser */ 
        } 
    } 
    
  • +1

    'auth.inMemoryAuthentication()。withUser(「AAA」)。パスワードは(」であるため、コンポーネントスキャンに問題があったが、 ( "ppp")。roles( "USER") '.pppp")ロール( "USER"、 "ADMIN")および()。withUser – pvpkiran

    答えて

    0

    O Pのソリューションが実際に動作することが判明しました。私の残りのプロジェクトは、私のDAOとリポジトリ・プロジェクトの子...

    @SpringBootApplication 
    @EnableAutoConfiguration 
    @ComponentScan({"com.leycarno.base", "com.leycarno.rest"}) // now we're listen to all the nice components :-) 
    @EnableJpaRepositories("com.leycarno.base.repositories") 
    @EntityScan("com.leycarno.base.models") 
    public class Application { 
    
        public static void main(String[] args) { 
         SpringApplication.run(Application.class, args); 
        } 
    } 
    
    関連する問題