如何以编程方式从木兰cms注销

我想创建用于注销用户的自定义REST。我使用一种方法/logout创建了基于jax-rs的端点定义:

@Path("/test")
public class MyEndpoint<D extends EndpointDefinition>  extends AbstractEndpoint<D> {

    @Path("/logout")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public void logout() {
        //how to logout user here?
    }
}

我应该用什么代码代替//how to logout user here?使其起作用?

ss1stshoo 回答:如何以编程方式从木兰cms注销

您可以注入以下组件并触发其注销。

info.magnolia.context.UserContext
,

我基于info.magnolia.cms.security.LogoutFilter

创建了工作解决方案
@Path("/logout")
@GET
@Produces(MediaType.APPLICATION_JSON)
public void logout(@Context HttpServletRequest request) {
    info.magnolia.context.Context ctx = MgnlContext.getInstance();
    if (ctx instanceof UserContext) {
        AuditLoggingUtil.log((UserContext) ctx);
        ((UserContext) ctx).logout();
    }

    if (request.getSession(false) != null) {
        request.getSession().invalidate();
    }
}
本文链接:https://www.f2er.com/3073667.html

大家都在问