[英]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.