当前位置:首页 > 开发 > 系统架构 > 应用服务器 > 正文

一种基于Weblogic容器的鉴权设计

发表于: 2015-06-06   作者:bijian1013   来源:转载   浏览:
摘要:         服务器对请求的鉴权可以在请求头中加Authorization之类的key,将用户名、密码保存到此key对应的value中,当然对于用户名、密码这种高机密的信息,应该对其进行加砂加密等,最简单的方法如下: String vuser_id = "weblogic"; String vuse

        服务器对请求的鉴权可以在请求头中加Authorization之类的key,将用户名、密码保存到此key对应的value中,当然对于用户名、密码这种高机密的信息,应该对其进行加砂加密等,最简单的方法如下:

String  vuser_id = "weblogic";
String  vuser_pwd = "weblogic";;
String loginInfo = vuser_id + ":" + vuser_pwd;
loginInfo = new BASE64Encoder().encode(loginInfo.getBytes("iso-8859-1"));
method.addRequestHeader("Authorization", "JAAS " + loginInfo);

        在服务器端对其进行反向处理即可,如下所示:

String authorization = request.getHeader("Authorization");
if (StringUtils.isEmpty(authorization)){
        throw new Exception("非法请求!");
}
authorization = authorization.substring("JAAS ".length(),authorization.length());
authorization = BASE64.decryptBASE64(authorization,this.httpHeaderEncoding);
Map<String,String> loginInfo = new HashMap<String,String>();
String[] tp = authorization.split(":");
loginInfo.put("userID", tp[0]);
loginInfo.put("password", tp[1]);

        然后进行weblogic的登录操作:

int status = weblogic.servlet.security.ServletAuthentication.login(userID,passworod,request,response);
if(status == weblogic.servlet.security.ServletAuthentication.AUTHENTICATED){
        return true;
}else{
        throw new LoginException("认证失败!");
}

        当然,为了降低服务器的认证压力,可以在服务器端做一个缓存,用于保存成功登录过的用户。简单来看,可以保存在ConcurrentHashMap中,key为用户ID,value为密码等。当用户请求过来时,首先根据用户ID从ConcurrentHashMap中获取,如能获取,则简单比较缓存中的密码和这次用户传入的密码是否相等,相等则认为认证通过,否则清空缓存重新认证,如果认证成功,则又将用户登录信息缓存起来。

一种基于Weblogic容器的鉴权设计

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUT
本文以访问的douban网oauth鉴权为例,说明与上篇“OAuth鉴权——原理”步骤相对应的具体内容。 操作
今天终于调试通过了鉴权过程,详细记录如下: 1原理 在ONVIF_WG-APG-Application_Programmer's_Guid
鉴权过滤器FilterSecurityInterceptor是11个默认过滤器的最后一个,也是流程很复杂的一个过滤器。它
SVN和它的客户端TortoiseSVN是用了蛮久了,但昨天却遇到一个很尴尬的问题,怎么样更改鉴权用户?在T
基于Base64编码的 HTTP Basic Authentication由于安全问题,已经不再广泛使用了。在云存储中,数据
云存储中的HTTP鉴权算法分析 基于Base64编码的HTTP Basic Authentication由于安全问题,已经不再广
2013-09-30 16:39:27 今天终于调试通过了鉴权过程,详细记录如下: 1原理 在ONVIF_WG-APG-Applicati
一种基于Android智能手机的远程视频监控的设计[图] 摘要:为了实现移动视频监控,提出了一种基于智
http://bbs.kechuang.org/read-kc-tid-9837-page-e.html 摘要:本文介绍了一种性价比高、功能丰富的
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号