0
私はanglejsフロントエンドをポートで実行し、バックエンドをポート3000
で実行しています。 バックエンドは現在、POSTMANを使用して正常に動作します。localhost上のangularjsで401を取得する:バックエンド用3000:
しかし、私はそれらを結合するとき、私は、次の
取得するバックエンドのための私のセットアップは次のとおりです。
//Global CORS configuration
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
}
セキュリティ設定が(何もログインページが、HTTPは、基本的な)ではありません。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/**").hasAnyRole("ADMIN", "USER")
.and()
.httpBasic()
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
@Bean
public CustomBasicAuthenticationEntryPoint getBasicAuthEntryPoint(){
return new CustomBasicAuthenticationEntryPoint();
}
フロントエンド角度:
app.factory('SurveysService', function($q, $http) {
var encodedUserNameAndPassword = btoa('admin:letme1');
// $http.defaults.headers.common.Authorization = 'Basic ' +
// Base64.encode($scope.username + ':' + $scope.password);
$http.defaults.headers.common['Authorization'] = 'Basic ' + encodedUserNameAndPassword;
var ss = 'http://localhost:3000';
return {
getSurveys : function() {
return $q(function(resolve, reject) {
$http.get(ss+'/surveys?start=1&limit=10').then(function(response) {
resolve(response.data)
},
function(response){
reject(response)
})
})
}}
})
誰でも問題が分かるでしょうか?
401はCORSの問題ではありません –
権限の問題ですが、もう一度春のセキュリティを調べてください。 'admin'の代わりに' header'を 'ADMIN'に渡して、もう一度やり直してください。 –
@ user3145373私のユーザー 'admin'は、ロール 'ADMIN'を持つメモリ内のユーザーです。私は春のセキュリティを見ているそれを動作させることはできません。ヘッダーを見てどういう意味ですか? – jemrug