2017-11-07 18 views
0

Javaの設定を使用して私のウェブアプリケーションを覚えています。私はすべての同様の質問を行って、私の問題に解決策が見つからなかった。ここでスプリングセキュリティ:ブラウザにremember-me cookieが作成されていますが、パスワードが保存されていません。

はコードです:

@Bean 
    public PersistentTokenBasedRememberMeServices getPersistentTokenBasedRememberMeServices() { 
     PersistentTokenBasedRememberMeServices tokenBasedservice = new PersistentTokenBasedRememberMeServices(
       "remember-me", userDetailsService, tokenRepository); 
//  tokenBasedservice.setAlwaysRemember(true); 
//  tokenBasedservice.setCookieName("remeber-me"); 
     return tokenBasedservice; 
    } 


@Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http. 
       ..... 
        .and().formLogin() 
        .loginPage("/login") 
        .failureUrl("/login-error") 
        .loginProcessingUrl("/login") 
        .usernameParameter("username") 
        .passwordParameter("password") 
        .defaultSuccessUrl("/") 
        .and().logout() 
        .logoutUrl("/logout") 
        .logoutSuccessUrl("/").and() 
        .rememberMe().rememberMeParameter("remember-me").tokenRepository(tokenRepository) 
        .tokenValiditySeconds(86400).and().csrf().and().exceptionHandling().accessDeniedPage("/access_denied"); 
     } 

これは、HTMLが

<div class="col-xs-12 col-sm-6 col-md-6"> 
    <h3>Login</h3> 
    <div th:if="${loginError}" 
     th:class="'alert alert-'+ *{loginError.type.name}+' alert-dismissible'"> 
     <button type="button" class="close" data-dismiss="alert" aria-hidden="true">× 
     </button> 
     <span><b th:text="*{loginError.description}"></b></span> 
    </div> 
    <form id="login-form" th:action="@{/login}" method="post"> 
     <div class="form-group"> 
      <label for="username" class="col-sm-4 control-label">Username</label> 
      <div class="col-sm-6"> 
       <input type="text" class="form-control" id="username" placeholder="" 
         name="username"/> 
      </div> 
     </div> 
     <!-- --> 
     <div class="form-group"> 
      <label for="Password" class="col-sm-4 control-label">Password</label> 
      <div class="col-sm-6"> 
       <input type="password" class="form-control" id="Password" 
         name="password" 
         placeholder=""/> 
      </div> 
     </div> 
     <!-- --> 
     <div class="form-group"> 
      <div class="col-sm-8 col-sm-offset-4 col-md-offset-4"> 
       <div class="pull-left m-r-20 checkbox icheck"> 
        <div class="checkbox icheck"> 
         <label> 
          <input type="checkbox" name="remember-me" id="remember-me"/> Remember Me 
         </label> 
        </div> 
       </div> 
......... 

thymeleaf使用して作成され、誰もが問題を把握することはできますか?

UPDATE:

クロムを使用してコードを検査、私はクッキーのリストで覚えて、私にクッキーを見ることができます。 Cookieは存在しますが、適切な場所で取得できませんでした。このようなシナリオの原因は何ですか?コードまたはサーバー側でこの問題が発生していますか?設定ファイルで

screen capture 1

screen capture 2

+0

アイデアを与えることはできますか? – sndu

+0

( "覚えて-私を") .rememberMeParameterを( "覚えて-私を") – don

答えて

1

あなたは

rememberMeParameter("remember-me") 

を与えている。しかし、あなたのhtmlに

<input type="checkbox"/> Remember Me 

春のセキュリティは覚えて-私を」パラメータを取得されていません'チェックボックスのhtmlに「remember-me」という名前を入れてみてください。希望が役立ちます。

+0

は申し訳ありませんが、私はすでにそれを行っている( "覚えて-私を")春のセキュリティ .rememberMeCookieNameにこれらを追加 .KEYを試してみてください。まだ動作していません – sndu

+0

あなたは 'remember-me'がユーザー名とパスワードだけでなく、春のセキュリティ、フォーム全体に渡されていると確信していますか? – don

+0

クッキーが「remember-me」と表示されたら、これをconfigに追加してください。 '.rememberMeCookieName( "remember-me")' – don

関連する問題