登录JAAS验证模块的weblogic应用,有两种方法
一.直接使用weblogic本身的api进行实现
import java.io.IOException; import javax.security.auth.Subject; import javax.security.auth.callback.CallbackHandler; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import weblogic.security.SimpleCallbackHandler; public class LoginService extends HttpServlet { protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { this.doPost(arg0, arg1); } protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String userName = req.getParameter("userName"); String password = req.getParameter("password"); //登录成功后所要访问的url String url = req.getParameter("url"); try { CallbackHandler handler = new SimpleCallbackHandler(userName, password); Subject subject = weblogic.security.services.Authentication.login(handler); weblogic.servlet.security.ServletAuthentication.runAs(subject, req); res.sendRedirect(req.getContextPath() + "/" + url); } catch(Exception e) { e.printStackTrace(); } } }
采用这种方式,weblogic会调用JAAS LoginModule的的login,commit操作
二.使用httpclient框架
HttpClient client = new HttpClient(); client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); //登录成功后需要访问的url GetMethod authget = new GetMethod(url); try { client.executeMethod(authget); } catch(HttpException httpe) { httpe.printStackTrace(); } catch(IOException ioe) { ioe.printStackTrace(); } finally { authget.releaseConnection(); } NameValuePair[] data = new NameValuePair[2]; data[0] = new NameValuePair(J_USERNAME, user.getName()); data[1] = new NameValuePair(J_PASSWORD, user.getPassword()); /** * 登录页面提交,获取cookie即sessionid * 由于servlet规范中默认session的cookiename属性为:JSESSIONID * 如果本域采用默认JSESSIONID作为cookie的name,则与请求域cookie发生冲突,导致请求域session失效,重新登录 * 可在weblogic.xml中配置session的cookiename属性 * <session-descriptor> * <session-param> * <param-name>CookieName</param-name> * <param-value>LOGIN_SESSIONID</param-value> * </session-param> * </session-descriptor> */ //JAAS验证servlet,如:REDIRECT_LOGIN=/j_security_check PostMethod authpost = new PostMethod(context + REDIRECT_LOGIN); authpost.setRequestBody(data); try { client.executeMethod(authpost); org.apache.commons.httpclient.Cookie[] cookies = client.getState().getCookies(); for(int i = 0; i < cookies.length; i++) { javax.servlet.http.Cookie cookie = new javax.servlet.http.Cookie(cookies[i].getName(), cookies[i].getValue()); /** * response添加登录成功后产生的cookie */ response.addCookie(cookie); } /** * 重定向至目标地址 */ response.sendRedirect(forword); } catch(HttpException httpe) { httpe.printStackTrace(); return; } catch(IOException ioe) { ioe.printStackTrace(); return; } finally { authpost.releaseConnection(); }
相关推荐
NULL 博文链接:https://dead-knight.iteye.com/blog/853919
Java认证和授权服务(JAAS)供应器JAAs验证机制
本示例利用JBoss提供的JAAS支持,通过很简单的代码实现了登录和访问控制,能够很好的从一个应用移植到另一个应用(当然仅限JBoss环境),只要修改一些xml和数据库的配置就可以了。 本示例用了一些hibernate的东西读取...
java JAAS登陆验证
JAAS 身份验证技术入门 作者 马林
JAAS登录验证文档,里面有详细步骤及例子;亲测使用中,希望用jaas的朋友能帮助到大家;
Java 2 SDK 1.3引入了JAAS( Java Authentication and Authorization Service),增加了基于用户的访问控制能力,即根据谁在运行代码来进行授权。JAAS已经整合进了Java 2 SDK 1.4,作为标准的用户认证与授权模型。
以完整的代码讲解JAAS( JAVA验证与授权服务)
JAAS:灵活的Java安全机制 Java Authentication Authorization Service(JAAS,Java验证和授权API)提供了灵活和可伸缩的机制来...本文首先向你介绍JAAS验证中的一些核心部分,然后通过例子向你展示如何开发登录模块。
本书内容主要包括三部分,第一部分介绍java ee开发的基础知识,以及如何搭建开发环境,包括安装jboss、weblogic应用服务器,以及如何使用svn、netbeans等。第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、...
Java Authentication Authorization Service(JAAS,Java 验证和授权API)提供了灵活和可伸缩的机制来保证客户端或服务器端的...本文首先向你介绍JAAS 验证中的一些核心部分,然后通过例子向你展示如何开发登录模块。
jaas.jar jaas.jar jaas.jar
此登录模块基于内置的 UsersRolesLoginModule。 有关配置详细信息,请参阅 。 要使用,请在 JBoss EAP 6.1.0 中添加 JAR 作为模块。 对于路径,使用类似$JBOSS_HOME/modules/system/add-ons/org/jboss/security/...
Tomcat的身份验证模块,其中包含SWBDataManager中的数据 ##环境 ### 1。 将swbLogin和SWBDataManager库复制到Tomcat的lib文件夹中 ###二。 创建JAAS配置文件该配置必须包含模块的必要参数: SWBLoginModule {...
从维普网站下载的论文,这个在正常情况下是需要花钱才能够得到的。
jaas的详细资料 基于JAAS和J2EE Web容器的验证与授权
基于JAAS的用户验证和控制模型的一般设计.doc
本书于2011-11月出版,此为该书的前面部分章节电子版 首先,这是一本高水平的书,作为对Oracle 在线文档和其他Java EE 及WebLogic ...● JAAS、SAML 1.1 和2.0、XACML、SSL、TLS 1.0、JSSE ● JMX、SNMP、WLST、WLDF