Wildfly数据库身份验证:将日期计算添加到主体查询

时间:2016-06-30 18:31:14

标签: mysql wildfly

我正在尝试在运行Wildfly数据库身份验证模块的应用程序中实现登录到期功能。

由于似乎无法在成功身份验证时触发自定义代码,或者任何类型的HttpSessionListener方法来获取此信息,我认为我可以在standalone.xml中的主体查询中添加WHERE子句以满足我的目标:

  <login-module code="Database" flag="required">
        ...
         <module-option name="principalsQuery" value="select password from parent where email=? and CURDATE() <= login_expiry_date "/>
        ...
   </login-module>

但Wildfly会输出一个堆栈跟踪说

 com.ctc.wstx.exc.WstxParsingException: Unexpected '<'  in attribute value

我试图满足的业务要求规定用户的登录必须在启动后2周到期,并且可以由管理员手动重新启动。

我是否应该继续尝试将此业务逻辑破解到standalone.xml中的主体查询中,或者我最好使用类似批处理的过程来使用户过期?

1 个答案:

答案 0 :(得分:1)

&LT;对xml属性字符串无效。你必须把它转移到&amp; lt;

<module-option name="principalsQuery" value="select password from parent where email=? and CURDATE() &lt;= login_expiry_date "/>