我目前正在做一个学校作业,我们需要设置JAAS,以便导入,我使用JAAS而不是其他安全模块。
当我尝试添加时:PrincipalsQuery =从“委托人”中选择密码,其中PrincipalID =?到WebUI中的身份验证模块时,出现无效格式错误,因为它不允许使用空格(没有空格时会接受)。
每当我用google搜索问题时,我就会看到standalone.xml配置了包含空格的模块选项。我试图将其包含在我的standalone.xml中(请参见下文),但它无法正常工作,并且webUI不断给我错误。
<authentication>
<login-module code="test" flag="required">
<module-option name="dsJindiName" value="java:/MySqlDS"/>
<module-option name="principalQuery" value="SELECT password from user where username = ?" />
</login-module>
</authentication>
我的数据源配置如下
<datasource jndi-name="java:/MySqlDS" pool-name="MySqlDS">
<connection-url>jdbc:mysql://localhost:3306/Kwetter</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver>mysql-connector-java-5.1.47.jar_com.mysql.jdbc.Driver_5_1</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
</datasource>
DsJindiName起作用,并且被登录模块接受。但是PrincipalQuery一直给我错误。我的想法是,旧的安全性不再能正确支持任何想法吗?
答案 0 :(得分:0)
解决方案:
我发现我需要使用Elytron来使用JAAS。使用此guide 最后一步出现问题,jbos-web.xml不接受Elytron应用程序安全域和编译时的错误。但是,当您在underwow中设置标准安全域时,它会像预期的那样构建和运行。