`
security
  • 浏览: 372475 次
  • 来自: www.pgp.org.cn
社区版块
存档分类
最新评论

CAS如何跟普通的Web系统融合认证和授权

阅读更多

CAS的作用是负责单点登录,登录细节当然要自己写,CAS3有一个这样的AuthenticationHandler 接口,继承关系如下
1,AbstractAuthenticationHandler implements AuthenticationHandler
2,AbstractUsernamePasswordAuthenticationHandler extends AbstractAuthenticationHandler

AbstractUsernamePasswordAuthenticationHandler 正是你认证管理的着手点,你写一个类,如WeblogicAuthenticanHandler去扩展它。

你先看看下面的接口:

public interface AuthenticationHandler {

    /**
     * Method to determine if the credentials supplied can be authenticated.
     *
     * @param credentials The credentials to authenticate
     * @return true if authenticated and false they are not
     * @throws AuthenticationException An AuthenticationException can contain details about why a particular authentication request failed.
     * AuthenticationExceptions contain code/desc.
     */
    boolean authenticate(Credentials credentials) throws AuthenticationException;
}


authenticate这个接口是每个Hander都必须实现,当然,AbstractHandler将它转交给 authenticateInternal 方法去实现。

认证有两种情况,成功或者失败,true or false。
我使用Weblogic的LoginModule

loginContext = new LoginContext("WeblogicUsernamePasswordModule", new WeblogicCallbackHandler(username, password, url));

它抛出个各种不同的认证异常让我轻松判断认证过程中发生了什么事情,
     /**
      * Attempt authentication
      */
     try
     {
       // If we return without an exception, authentication succeeded
       loginContext.login();
     }
     catch(FailedLoginException fle)
     {
       System.out.println("Authentication Failed, " + fle.getMessage());
       loginsccess=false;
     }
     catch(AccountExpiredException aee)
     {
       System.out.println("Authentication Failed: Account Expired");
       loginsccess=false;
     }
     catch(CredentialExpiredException cee)
     {
       System.out.println("Authentication Failed: Credentials Expired");
       loginsccess=false;
     }
     catch(Exception e)
     {
       System.out.println("Authentication Failed: Unexpected Exception, " + e.getMessage());
       loginsccess=false;
     }

如果一切正常,授权开始了。

     if(loginsccess==true)
     {
      /**
       * Retrieve authenticated subject, perform SampleAction as Subject
       */
      subject = loginContext.getSubject();
      System.out.println("User["+ username+"]["+ password+"] Login Success, Subject is"+subject.toString());
      return true;
     }
     else
     {
      System.out.println("User["+ username+"]["+ password+"] Login Fail, Check!!!!!");
      return false;
     }

OK,获得了Subject,那你就可以获得principal,编程式授权便有了依据。
同时,你还可以用Weblogic的声明式授权,直接在web.xml中定义资源的授权规则。

更多关于认证授权,请看[Weblogic Security In Action]
http://dev2dev.bea.com.cn/bbs/servlet/D2DServlet/download/81-26770-158358-1697/WeblogicSecurityInAction(1).swf

分享到:
评论

相关推荐

    cas4.2.7 实现其他系统和cas互相认证互信

    cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信

    cas4.2.7 实现其他系统和cas互相认证互信2 整包太大这是web项目块,解压放到1里面就可以了

    如果把整个项目上传的话太大了,就把整个项目分成了两份,只需要把这个包解压后复制到cas4.2.7 实现其他系统和cas互相认证互信即可

    FANSY 统一认证和授权系统(PART1)

    欢迎您下载FANSY开发的统一认证和授权系统,欢迎大家一起交流探讨! 本系统基于CAS,包含的功能有:统一认证(单点登录、单点退出)、用户信息统一管理、用户权限管理等 maven工程 -----------------------------...

    统一身份认证(CAS)简单说明与设计方案

    在设计 CAS 解决方案时,需要考虑到以下几个方面:身份认证机制、授权机制、安全机制、可扩展性和可靠性。CAS 的设计需要满足企业的安全需求,保护用户的敏感信息,确保数据的安全传输和存储。 CAS 是一种功能强大...

    cas单点登录系统

    cas单点登录系统,带源码,可定制开发;CASServer负责完成对用户的认证工作,CASServer需要独立部署,CASServer处理...CAS究竟是用何种认证方式,跟CAS协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展。

    条件接收系统CAS DVB-CAS

    CAS的主要任务是阻止用户接收未被授权的节目和如何从用户处收费的问题,而在广播电视系统中,在发送端对节目进行加扰(Scrambling)、加密(Encryption),在接收端对用户进行寻址控制和授权解密、解扰是解决这个两...

    CAS单点登录系统.doc

    CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: • 开源的企业级单点登录解决方案。 • CAS Server ...

    cas原理 webflow mvc ioc

    cas原理 webflow mvc ioc 登陆流程

    单点登录-OAuth授权框架及CAS在为Web应用系统提供的解决方案实践.docx

    单点登录-OAuth授权框架及CAS在为Web应用系统提供的解决方案实践.docx

    cas统一身份认证sso

    统一身份认证-CAS配置实现 SSO单点登录Spring-Security+&+CAS+使用手册 统一身份认证-CAS配置实现 CAS登录验证(密码MD5、SHA加密后_再进行Base64加密实现代码)_与Liferay的用户身份验证对应

    H3C_CAS_LINUX安装cas-tools

    CAS Tools 是一个功能强大的虚拟化管理平台,能够帮助管理员更方便地管理和维护虚拟机。下面,我们将详细介绍如何在 Linux 系统中安装 CAS Tools。 虚拟化技术 虚拟化技术是一种软件技术,能够将物理机器的硬件...

    WIFI十二种web认证方式及简单配置.pdf

    在 web 认证配置页面,选择“ CAS/LDAP 认证” 方式,并配置 CAS/LDAP 系统地址即可。 十、 QQ、新浪微博认证 QQ、新浪微博认证是 WIFI 认证的一种方式,需要用户使用 QQ 或新浪微博账户登录上网。这种方式适用于...

    论文研究-一种分布式系统的用户认证授权机制及其应用.pdf

    针对用户认证和授权问题提出了一种对用户集中认证、分散授权的解决方案。通过借鉴网格环境中的虚拟社区授权服务的体系结构,构造了统一身份认证和资源访问控制的系统框架,并实现了单点登录、细粒度用户访问控制的...

    集成cas实现单点登录认证.zip

    集成cas实现单点登录认证.zip

    CAS采用Spnego认证方式通过Kerberos与AD域整合

    在 CAS 中,Spnego 认证方式可以通过配置 login-webflow.xml 文件来实现。 Kerberos 认证协议 Kerberos 是一种常用的身份验证协议,用于在客户机和服务器之间进行身份验证。Kerberos 认证协议可以与 AD 域进行集成...

    CAS单点登录系统之java实现(part_1)

    资源列表(1:cas CAS Server,2:Cas_Client_One 授权系统,3:graduationDesign 用户组织管理系统,4:CAS单点登录论文.doc,5:CAS单点登录文献综述.doc,6:基于CAS的用户管理单点登录门户系统ppt.ppt)

    CAS单点登录系统之java实现(part_2)

    资源列表(1:cas CAS Server,2:Cas_Client_One 授权系统,3:graduationDesign 用户组织管理系统,4:CAS单点登录论文.doc,5:CAS单点登录文献综述.doc,6:基于CAS的用户管理单点登录门户系统ppt.ppt)

    无https验证的CAS单点登录

    无https验证的CAS单点登录,统一认证

    H3C_CAS虚拟机支持的操作系统

    H3C_CAS虚拟机支持的操作系统列表v3.5H3C_CAS虚拟机支持的操作系统列表v3.5

    cas.zip--cas源码

    cas源码,可直接使用 单点登录(Single Sign On),简称为 SSO,是目前...CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

Global site tag (gtag.js) - Google Analytics