JBoss Wildfly 8.0.0-最终
JSF 2.2.4
首先,我创建登录使用application-users.properties和application-roles.properties.添加用户add-user.bat
网状物xml
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin Resource</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/error.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
独立的。xml
<login-module code="Remoting" flag="optional">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
<login-module code="RealmDirect" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
登录。xhtml
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<div class="center">
<form method="POST" action="j_security_check" id="">
<h:panelGrid id="panel" columns="2" border="1" cellpadding="4" cellspacing="4">
<h:outputLabel for="j_username" value="Username:" />
<input type="text" name="j_username" />
<h:outputLabel for="j_password" value="Password:" />
<input type="password" name="j_password" />
<h:panelGroup>
<input type="submit" value="Login" />
</h:panelGroup>
</h:panelGrid>
</form>
</div>
</ui:composition>
所以这很有效。。现在我想使用数据库身份验证。。因此,我改变了独立。xml。
<login-module code="Database" flag="sufficient">
<module-option name="dsJndiName" value="java:jboss/jsi/GarageXADataSource"/>
<module-option name="principalsQuery" value="select encode(password, 'hex') from principal where username=?"/>
<module-option name="rolesQuery" value="select r.role, r.role_group from role r inner join principal p on r.role = p.role where p.username=?"/>
<module-option name="hashAlgorithm" value="SHA-512"/>
<module-option name="hashEncoding" value="hex"/>
</login-module>
我使用此sql在数据库中插入角色和用户(PostgreSQL 9.3)
在角色(角色、角色组)中插入值(“管理员”、“角色”)
插入主体(用户名、电子邮件、密码、角色)值('Kris','xx@gmail.com,摘要('pass','sha512'),'admin');
但是登录不起作用。我在日志中没有看到错误。我以前在AS 7.1.1中使用过这种方法。
谢谢你的帮助。
我刚才和Wildfly有同样的问题,请在你的单机版中查找这一行。xml
<default-security-domain value="other"/>
并将其他更改为您的安全域,在以前的版本中,此选项是不必要的。
问题是常量'角色',您必须像'角色'一样指定它。示例:从Role中选择角色,'Roles',其中角色ID=
首先,DatabaseServerLoginModule将日志记录到跟踪级别,所以您应该设置org。jboss。要在单机版中跟踪的安全日志级别。xml如下所示。现在您应该可以看到服务器中的错误。日志
<logger category="org.jboss.security">
<level name="TRACE"/>
</logger>
您还需要在jboss web中添加域名。xml
<jboss-web>
<security-domain>java:/jaas/MyRealm</security-domain>
</jboss-web>
您尚未提供登录模块配置代码段周围的标记。你应该在下面写些东西。域名需要与您的web中的域名匹配。xml
<subsystem xmlns="urn:jboss:domain:security:1.0">
<security-domains>
<security-domain name="MyRealm">
<authentication>
<login-module code="Database" flag="required">
....
</authentication>
</security-domain>
</security-domains>
</subsystem>
完成此操作后,您可以发布服务器上的任何错误。日志
主要内容:通过命令行客户端软件登录当MySQL 服务开启后,就可以通过客户端来登录 MySQL 数据库了。在 Windows 操作系统下可以使用 DOS 命令登录数据库,本节将介绍使用命令方式登录 MySQL 数据库的方法。 登录 MySQL 数据库的具体操作步骤如下: 步骤 1):单击“开始”→“Windows 系统”→“命令提示符”,如图所示。 步骤 2):打开命令行提示符界面,输入命令 ,按回车键,如图所示。 步骤 3):在
我有一个moodle数据库(其中有完整的用户)。所以,我想创建一个登录表单(只是为了好玩),并且用户可以用他们的moodle帐户credidentials登录。Moodle为每个单独的用户使用密码盐,我如何在我的代码中盐密码来与db记录进行比较?
我必须将所有日志数据(即调试、信息、错误)放入mysql数据库,而不是文件/控制台。我阅读了Spring Boot文档,但没有看到任何与日志记录数据库相关的配置。 https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html 也尝试了以下链接,但它也不工作。https://www.tutorial
我使用spring和security with创建了一个REST服务。当前,当我点击url时,我获得了访问令牌,然后使用它发送基本登录凭据,该凭据在文件中是静态的。如何使用数据库提供用户身份验证?
使用C#在ASP.NET中使用VS2012中的Crystal Report创建/导出PDF文件。 CR版本:Crystal Report XI MVC Framework:4.0 OS:Windows 7 64位 错误列表: 1)无法加载文件或程序集“CrystalDecisions.ReportAppServer.CommLayer,版本=13.0.2000.0,区域性=Neutral,Publ
我是mysql和php的新手。 一直致力于为用户创建一个带有表的数据库。 我已经成功地将用户添加到数据库中,他们的密码是md5(是的,我知道它不安全),它不会在线启动。 我的问题是,如何根据用户正确的用户名和密码登录。 这是我的密码 我的逻辑是taht查询运行后,它将返回true或false。 如果为真,则显示成功登录,否则不成功。 然而,即使我输入了正确的用户名和密码,我仍然会收到一条不成功的登