基于JDBCRealm的程序化登录

时间:2012-05-08 14:39:03

标签: authentication java-ee-6 glassfish-3 jaas servlet-3.0

我正在尝试在一个简单的JSP应用程序中实现OpenID身份验证。

基于FORM的身份验证确实让我疯狂,因为无法监听 pre 发布 - 验证事件。

当我从OpenID提供者处收到用户信息时,我想建议他们填写简单的注册表(即编辑从身份提供者处收到的详细信息,并可选择添加一些其他信息)。但是如果我使用标准的“j_security_check”动作,那些细节就会丢失。如果我尝试以编程方式登录用户(即使用HttpServletRequest#login(用户,密码),我无法将用户重定向到最初请求的URL(因为只有FormAuthenticator保留此信息)。

有没有办法手动控制身份验证机制,使用一些预先配置的JDBC领域?也就是说,我不想在我的web.xml中指定<login-config />,但是在调用HttpServletRequest#login时我想对JDBC领域进行身份验证。这可能吗?

1 个答案:

答案 0 :(得分:2)

不,这基本上不可能与GlassFish提供ootb。 你需要深入挖掘。您最终将使用自定义JAAS LoginModule和JSR-196登录桥。 更多指示: