我正在尝试-使用JSF 2.0-以一种简洁的方式实现登录/记住我/注销管理。由于传统<form action="j_security_check" ...
方法缺乏灵活性,因此我决定采用不同的方法,但是我发现了一个问题。
声明性安全正确地通过设置无论是在应用服务器<security-domain>
和在web.xml中通过<security-constraint>
,<login-config>
和<form-login-page>
。
登录页面:
<h:form id="loginForm">
<h:panelGrid columns="2" cellspacing="5">
<h:outputText value="Username" />
<h:inputText value="#{loginBean.username}" />
<h:outputText value="Password:" />
<h:inputText value="#{loginBean.password}" />
<h:outputLabel value=""/>
<h:commandButton value="Login" action="#{loginBean.login}" />
</h:panelGrid>
</h:form>
和简单的LoginBean#login():
public String login( )
{
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance( ).getExternalContext( ).getRequest( );
try {
request.login( username, password );
}
catch ( ServletException e ) {
FacesContext.getCurrentInstance().addMessage( "Unknown login...
return null;
}
return "i_dont_know_where_you_were_going";
}
一切正常,但是成功登录后,我不知道如何将用户转发到其原始请求。由于登录页面会自动插入客户端请求和“任何”安全资源之间,因此我需要一种方法来了解将操作重定向到何处。request.getRequestURL( )
没有帮助,可能是由于RequestDispatcher#forward()
(会覆盖请求网址)干预。您是否认为这是管理登录过程的合适方法?如果是这样,有关此问题的任何提示吗?
非常感谢!
在登录视图中添加类似以下内容的内容。它在登录期间存储请求的页面。
<f:param name="redirect" value="#{requestScope['javax.servlet.forward.request_uri']}" />
然后在您的登录bean中获取请求的uri。
FacesContext context = FacesContext.getCurrentInstance();
String redirect = context.getExternalContext().getRequestParameterMap().get("redirect");
添加?faces-redirect=true
到字符串并返回它。
问题内容: 我有一个完全由Weblogic容器保护的Web应用程序。现在,我必须列出当前登录的用户。我必须为此使用Spring Security 2.0.4 在web.xml中,我定义了必要的侦听器和过滤器: 之后,按照我的理解,我定义了bean: 最后,我编写了一个简单的JSP页面,其中列出了用户: 这是我的帮助程序类尝试获取用户列表的方式: 不幸的是,所有这些都不起作用,我也不知道该如何调试。
接口说明 用户登录 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/user/1.0.0/login 是否需要登录 否 请求字段说明 参数 类型 请求类型 是否必须 说明 username string form 是 用户名 password string form 是 密码 响应字段说明 参数 类型 说明 user St
回顾 在上一章中,我们已经创建了数据库以及学会了使用它来存储用户以及 blog,但是我们并没有把它融入我们的应用程序中。在两章以前,我们已经看到如何创建表单并且留下了一个完全实现的登录表单。 在本章中我们将会建立 web 表单和数据库的联系,并且编写我们的登录系统。在本章结尾的时候,我们这个小型的应用程序将能够注册新用户并且能够登入和登出。 我们接下来讲述的正是我们上一章离开的地方,所以你可能要确
遇到此问题时,我正在尝试使用 Inno Setup 创建安装程序,其他所有内容都在安装,但注册表项未安装在当前用户中。我发现了这个有用的主题(非常感谢! Inno 设置 为登录用户(非管理员用户)创建注册表项 这解决了添加注册表项的问题,如下所示: 我的问题: 指的是管理员用户(管理员)而不是本地用户(测试): 它添加了:HKCU\Software\myprinter OutputFile REG
我想设置以下工作流: 最初,在没有登录的情况下,Swagger只显示2-3个endpoint——这将通过从后端提供有限的OpenAPI3JSON来实现,没有问题 有可能和斯威格一起做第三项吗?我如何手动发出请求从Swagger与OAuth2承载令牌(因为用户登录,令牌必须在某些地方)和重绘Swagger页面?
问题内容: 我需要输入USER表的USER_ID字段作为另一个表中的外键。因此,我认为我需要在用户登录时启动一个会话。我很难让它在任何地方回显。我能够启动一个会话,该会话允许我回显USERNAME,但无法将其复制为ID。 请帮忙吗?我的处理代码如下。我还粘贴了本节,我暂时尝试对其进行回显以进行测试。 处理脚本: 我希望USER_ID出现在哪里: 问题答案: 使用FETCH_ASSOC而不是FETC