我正在使用JAAS对访问我的web应用程序的受保护区域的用户进行身份验证。登录页面如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; UTF-8" />
<title>Test</title>
</h:head>
<h:body>
<ui:composition template="template/common/commonLayout.xhtml">
<ui:define name="content">
<form name="loginForm" method="post" action="j_security_check">
<table>
<tr>
<td colspan="2">Login to the your application:</td>
</tr>
<tr>
<td>Select something:</td>
<td><h:selectOneMenu>
<f:selectItems value="#{loginScreenBean.listSomething}" />
</h:selectOneMenu><br /></td>
</tr>
<tr>
<td>Name:</td>
<td><input type="text" name="j_username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="j_password" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Go" /></td>
</tr>
</table>
</form>
</ui:define>
</ui:composition>
</h:body>
</html>
我的web-xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>patchit</display-name>
<welcome-file-list>
<welcome-file>test.html</welcome-file>
</welcome-file-list>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-constraint>
<display-name>Example Security Constraint</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/protected/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Example Form-Based Authentication Area</realm-name>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/login-error.xhtml</form-error-page>
</form-login-config>
</login-config>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
</web-app>
我的jaas配置如下所示:
CustomLogin {
de.kungfuzius.test.security.SimpleLoginModule
sufficient;
};
因此,当我在contextPath/protected/test.xhtml这样的受保护区域中打开一个页面时,我会看到带有登录表单的login.xhtml。点击submit按钮后,用户将得到身份验证,但不是转发/重定向到最初请求的页面,而是重定向到contextPath/protected/res_not_found。为了检查用户是否真的通过了身份验证,我再次尝试访问contextPath/protected/test.xhtml,但它起作用了。
非常感谢任何帮助。
谢谢!
哇,有趣的行为。我查看了使用fiddler的请求,发现了一个对context/protected/res_not_found的请求。此请求来自一个css文件,该文件在我的模板中被引用,但还不存在。
当我移除对样式表的引用时,它起作用了!!!
我有两个java webapps,它们运行在同一个jboss服务器上,但是在不同的域中: 主机:端口 1/上下文 1/ 主机:端口 2/上下文 2/ 两个网站的所有内容都通过使用JAAS登录模块进行保护。我现在想在app1中创建一个按钮,以转到app2上的页面。正如预测的那样,我会看到app2的登录屏幕。我可以成功登录。 然而,两个Web应用程序上的用户实际上是相同的。这意味着对app1有效的用户
尝试按照配置文档使用JAAS向hawtio添加身份验证 通过使用jetty的demo base test jaas war来配置基本jaas/jetty登录,并能够进行身份验证/授权。 通过阅读文档,我试图将同样的概念融入hawtio,但我确信它甚至没有触及ldap,因为当我在演示战中尝试这一点时,我会得到类似的日志 我决定暂时忽略授权,尝试使用ldap进行身份验证。如果有人对我如何进一步调试这个
有人可以使用jaas登录模块吗。我在看医生 我想是这些登录模块可以1.与OS用户进行身份验证2.提供该用户的组。 基本上我想通过操作系统进行身份验证。输入用户名和密码 我想用windows进行身份验证 我不想做LDAP认证只做os认证。 对于windows,有华夫饼干库可用。但我无法在使用64位机器时进行身份验证。在32位上运行良好。 对于linux,有jpam,但它不提供组。它只会检查用户名、密
我正在尝试开发一个定制的JAAS登录模块,它使用一个令牌并从不同的来源获取用户数据。它应该作为wildfly 8.2.1 final的身份验证领域。我有一个测试servlet,我想在其中进行身份验证,以便检查注入EJB的允许角色。 这个网站的测试:http://www.radcortez.com/custom-principal-and-loginmodule-for-wildfly/事实上,我甚
使用基于表单的JAAS、MySQL、Apache TomEE、JSP、Servlet 我知道如何配置基于表单的JAAS,当用户试图访问安全页面时,自动将用户重定向到登录页面。基本上,我已经为TomEE和MySQL配置了JDBC领域(在文件中),在中,我已经声明了、和。 然后,有以下登录表单: 而且,这对于在web.xml中的标记中声明的页面很好。 但是,我想有明确的访问一个页面,用户可以登录。那么
我有一个使用SpringMVC的Java网络应用程序。该 Web 应用程序在 jboss AS7.1 服务器上运行,该服务器使用带有表单认证的 JAAS 登录模块。当用户在表单上填写其用户名和密码时,登录工作顺利。 我现在想创建一个java控制器,它“将用户登录”,就好像用户填写了日志通知一样。 当上述方法完成时,应允许对任何安全页面的任何访问,因为用户被视为已登录。 可以通过访问Jboss的lo