2011-07-20 11 views
1

JBossを使用してFlexベースのRIAに一連のRESTfulサービスを提供しています。とにかく、(フォームベースのログインを使用して)ログインを実現するためにいくつかの痛みを経験しましたが、私はユーザーをログアウトするためのRESTfulな方法を提供することに苦労しています。私はRESTfulなサービスを実装するステートレスセッションBeanを使用したJBoss、RESTEasyのでこれを行うことができますどのようにRESTfulな呼び出しでユーザーをログアウトする(セッションを無効にする)

session.invalidate() 

: はJSPでは、私のようなものを簡単に呼び出すことができますか?

これは私のRESTfulなサービスBeanのローカル・インタフェースです:

@Local 
@Path("/Rest") 
public interface SessionController { 
... 
    @GET 
    @Path("/logout/") 
    @Produces("text/xml") 
    String logout(@Context HttpServletRequest req); 
} 

をそして、これが実装される:かなり

@RolesAllowed({ "TheBoss", "SomeUser", ... }) 
@SecurityDomain("mysqlLogin") 
@Stateless 
public class SessionControllerBean implements SessionController { 

    ... 

    public String logout(@Context HttpServletRequest req) { 
     ... 
     req.getSession().invalidate(); 
     return "SUCCESS"; 
    } 
} 

googelingのビットは、私が解決策を作成した後

+0

セッション中にデータを保持していますか? –

+0

私はセッション中にデータを保持していません。認証のためだけに必要です。 – Christoph

+0

どのセキュリティサービスを使用していますか?あなたはSpring Securityを使っていますか?あなた自身のログインサービスを起動しましたか?言い換えれば、アプリケーションが直接セッションにアクセスしたり、別のサービスを通じて間接的にセッションにアクセスしたりしますか? – Pace

答えて

4

あなたが見ることができるように簡単です。私がすでに想像していたように、依存性注入はトリックです。 @Contextアノテーションを使用すると、セッションを取得して無効化を呼び出すことができるHTTPServletRequestをJBossに要求することができます。

Beanは、RESTfulサービスとしてresteasy経由で呼び出されています。

Java EEを使用して開発しているうちに、これらのすべてのXMLファイル(maven設定は純粋な地獄)の設定方法、実際に機能を開発するよりも注入するBeanと注入する方法。

+0

この方法は、シングルサインオンモードでは機能しません。私はJbossに問題がある – vanduc1102

関連する問題