2017-03-09 9 views
-1

検証されていないと私はMYGlobalAuthenticationConfigurerAdapter このように作成した春ブーツ基本認証のユーザー名は、私は春のセキュリティを備えた初心者です

それを試してみるために私の春のブートアプリケーションのための基本的な認証を作成しました:

​​を

私はファイルを、私はこのような値

とMyWebSecurityConfigurerAdapterに対して検証プロパティからユーザー名とパスワードをロード注:

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.authorizeRequests().anyRequest().fullyAuthenticated().and(). 
    httpBasic().and(). 
    csrf().disable(); 
} 

@EnableWebSecurity注釈。

は、私はユーザー名とパスワードを使用して私のWebサービスの一つに、私は、要求がユーザ名が、私は私の性質が

答えて

1

このファイルに入れたものと同じでない場合であっても検証されたユーザー名を変更するたびに接続するために郵便配達をしてみてくださいあなたが引数で受け取ったものと全く何のチェックもせずにUserオブジェクトを返すからです。次のコードを試してみてください。

@Value("${username}") 
    String username; 

    @Value("${password}") 
    String password; 

    @Override 
    public void init(AuthenticationManagerBuilder auth) throws Exception { 
     auth.userDetailsService(userDetailsService()); 
    } 

    @Bean 
public UserDetailsService userDetailsService() { 
    return new UserDetailsService() { 

     @Override 
     public UserDetails loadUserByUsername(String name) throws UsernameNotFoundException { 
      if(name.equals(username)){ 
       return new User(username, password, true, true, true, true, 
        AuthorityUtils.createAuthorityList("USER")); 
      }else{ 
       throw new UsernameNotFoundException("Could not find the user '" + name + "'"); 
      } 

     } 
    }; 
} 

をUPDATE

ユーザが任意のパスワードで検証していますが、loadUserByUsername()メソッド内のユーザーの作成に使用するパスワードのみとされることはありません。このメソッドでは、ユーザー名と戻り値でユーザーを検索しますが、認証はここでは行われませんが、認証は春までに内部的に行われ、ユーザーの作成中に渡したパスワードと一致し、要求。また、アクセスしているURLのユーザーの役割を検証し、特定の役割のURLがマップされている場合は、その役割を持つユーザーにアクセス権が与えられ、他の役割はアクセス拒否応答が送信されます。 したがって、パスワードでユーザーを認証することはありません。

+0

@md zahid razaお願いします。 https://stackoverflow.com/questions/46065063/spring-boot-basic-authentication –

関連する問題