1

seam security 3 の「remember me」機能はどのように使用できますか???

seam 2 の方法を試してみましたが、うまくいきません... ここで私の components.xml ... このファイルが seam 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}"/>

ありがとう

4

2 に答える 2

1

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

Seam2の既知の RememberMeは、次の 2 つのモードで利用できます。

  • 最初のモードでは、ユーザー名をユーザーのブラウザーに Cookie として保存し、パスワードの入力をブラウザーに任せます (最近のブラウザーの多くはパスワードを記憶できます)。

  • 2 番目のモードは、Cookie への一意のトークンの保存をサポートし、ユーザーがサイトに戻ったときにパスワードを入力することなく自動的に認証できるようにします。

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

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

次に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>

Cookie が利用可能かどうCookieBeanかを確認し、提供されたトークンをユーザー名にマップしてから、フォームにユーザー名を入力します。

@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;}
}
于 2012-08-05T10:05:16.913 に答える
0

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

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

于 2011-09-01T06:04:09.920 に答える