0
私は春のブートセキュリティと永遠に闘うと感じています。 私が何をしたいです(@least)非常に簡単です: 3つの異なるセキュリティレベルのREST-サービス: "USER" のためRestService "保護" のすべての SpringBoot + REST +セキュリティ - すべてのアクセスが開かれているかすべて閉じられている
- "公共" 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 */
}
}
'auth.inMemoryAuthentication()。withUser(「AAA」)。パスワードは(」であるため、コンポーネントスキャンに問題があったが、 ( "ppp")。roles( "USER") '.pppp")ロール( "USER"、 "ADMIN")および()。withUser – pvpkiran