spring security
maven依赖
org.springframework.boot spring-boot-starter-security
config
@Configuration@EnableWebSecurity@EnableGlobalMethodSecurity(prePostEnabled=true)public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() .authorizeRequests() .antMatchers("/**").authenticated() .anyRequest().anonymous() .and() .httpBasic() .realmName("known"); } @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("xixicat").password("xixicat").roles("USER"); }}
jquery配置
$.ajax({ beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", "Basic " + btoa('xixicat' + ":" + 'xixicat')); }, url: '/demo', type: 'POST', dataType:"json", contentType:"application/json", data:JSON.stringify(saveData), success: function (res, status) { window.location.reload(); }, error: function (data, status) { if (data.status == 200) { window.location.reload(); }else{ dangerDialog(data.statusText); } } });
android的retrofit配置
OkHttpClient httpClient = new OkHttpClient(); httpClient.interceptors().clear(); httpClient.interceptors().add(new Interceptor() { @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request original = chain.request(); Request.Builder requestBuilder = original.newBuilder() .header("Authorization", basic) .method(original.method(), original.body()); Request request = requestBuilder.build(); return chain.proceed(request); } }); Gson gson = builder.create(); this.retrofit = new Retrofit.Builder() .baseUrl(API) .client(httpClient) .addConverterFactory(GsonConverterFactory.create(gson)) .build();
docs