2011-08-31 17 views
1

どのようにシームセキュリティ3の覚えている私の機能を使用することができますか?ここシームで私を覚えている3

私は縫い目2の方法を試してみたが、それは動作しません... 私はcomponents.xml ...このファイルは継ぎ目3

<security:jpa-token-store token-class="org.jboss.seam.example.seamspace.AuthenticationToken" /> 
<security:remember-me mode="autoLogin"/> 
<event type="org.jboss.seam.security.notLoggedIn"> 

<action execute="#{redirect.captureCurrentView}"/> 

<action execute="#{identity.tryLogin()}"/> 

で使用されているかどうかわかりません
<action execute="#{redirect.returnToCapturedView}"/> 

おかげ

+0

あなたのエラーは何ですか?何が起こると、それは動作しないことを知ることができますか? –

+0

トークンテーブルへの書き込みデータがありません – RLuceac

+0

ジャスティンの機能を使用しましたか? @JustinSatyr – RLuceac

答えて

0

Seam 3はcomponents.xmlを使用してコンポーネント/ Beanを構成していません。

Seam Security 3(3.0.0.Final現在)には「rememberMe」機能が組み込まれているとは思われません。

1

https://community.jboss.org/thread/178998によれば、RemeberMeはseam-security-3.1と統合されていませんが、クラスはすでにpreparedです。

Seam2から知られているリメンバー・ミーは、2つのモードで使用可能です:

  • 第1のモードは、ユーザー名がクッキーとしてユーザーのブラウザに保存することができ、ブラウザまでのパスワードの浸入を残し(多くの現代のブラウザではパスワードを覚えることができます)。

  • 第2のモードでは、Cookieに一意のトークンを格納することができ、ユーザーはパスワードを入力せずにサイトに戻ったときに自動的に認証できます。

幸いにも、最初のモードの回避策を実装するのは難しくありません。ログインに成功した後、あなたはクッキーを設定することができます。そして、

FacesContext.getCurrentInstance().addResponseCookie("cookieName", "myToken", null); 

を確認して、独自のCookieBeanあなたCookieBeanあなたのクッキーが利用可能である場合は、マップ、確認することができます提供でログイン

<ui:fragment rendered="#{cookieBean.dummy}"/> 
<h:form id="fLogin"> 
    <h:inputText value="#{credentials.username}"/> 
    <h:inputSecret value="#{credentials.password}" redisplay="true"/> 
    <h:commandButton value="LOGIN" action="#{identity.login}"/> 
</h:form> 

前に呼び出されますあなたのフォームにユーザ名を記入してください。

@Named @SessionScoped 
public class CookieBean implements Serializable 
{ 
    @Inject Credentials credentials; 

    @PostConstruct 
    public void init() 
    { 
    Map<String, Object> cookies = FacesContext.getCurrentInstance(). 
         getExternalContext().getRequestCookieMap(); 
    // Check if you cookie is available 
    // Do some stuff with your cookie 
    // Cookie cookie = (Cookie) cookies.get("cookieName"); 
    credentials.setUsername("myUserName"); 
    } 

    public boolean getDummy() {return false;} 
} 
関連する問題