我正在做一个学校作业,我们需要设置JAAS,所以它是导入我使用JAAS而不是另一个安全模块。
当我试图添加:principalsQuery =从Principal中选择密码,其中PrincipalID =?到我的WebUI中的身份验证模块我得到无效的格式错误,因为它不允许空格(它在没有空格时接受)。
每当我发现问题时,我都会看到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可以正常工作并被login-module接受。但是principalQuery一直给我错误。我的想法是遗留安全性不再正确支持任何想法?
解:
我发现我需要使用Elytron来使用JAAS。使用此guide在最后一步出现问题,jbos-web.xml不接受Elytron应用程序安全域和编译时的错误。但是,当您在underow中设置标准安全域时,它将构建并按预期工作。