簡體   English   中英

通過 RESTful 調用注銷用戶(使會話無效)

[英]logout user via RESTful call (invalidate session)

我正在使用 JBoss 為基於 Flex 的 RIA 提供一堆 RESTful 服務。 無論如何,我通過一些痛苦來實現登錄(使用基於表單的登錄),但我正在努力提供一種 RESTful 方法來注銷用戶。 在 JSP 中,我可以簡單地調用如下內容:

session.invalidate()

如何使用 JBoss、使用無狀態 session bean 實現 RESTful 服務的 Resteasy 執行此操作?

經過一番谷歌搜索后,我創建了一個解決方案:

這是我的 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";
    }
}

如您所見,非常簡單。 正如我可能想象的那樣,依賴注入已經是訣竅了。 使用@Context 注釋,我可以要求 JBoss 注入 HTTPServletRequest,我可以從中獲取 session 並調用 invalidate。

該 bean 被作為 RESTful 服務通過 resteasy 調用。

在使用 Java EE 進行開發時,我發現與實際開發功能相比,我花更多的時間來跟蹤如何在所有這些 xml 文件中配置內容(maven 配置簡直是地獄),使用哪些 API 以及如何以及注入哪個 bean。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM