`
security
  • 浏览: 379444 次
  • 来自: 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互相认证互信

    CAS(Central Authentication Service)是一种基于Web的单一登录(Single Sign-On, SSO)协议,用于在多个应用系统间实现统一的认证服务。CAS 4.2.7 是 CAS 的一个特定版本,它提供了与其他系统进行身份验证互信的...

    CAS单点登录(SSO)服务端自定义认证+CAS客户端配置+CAS完整使用文档+CAS4.2.7 cas-serv服务端源码 cas-client客户端源码

    它将指导你如何安装、启动CAS服务器,如何配置服务注册,以及如何处理各种认证和授权场景。 6. **CAS服务端自定义返回值**: 在完成认证后,CAS服务器可能会返回一些自定义信息给客户端,例如用户角色、权限等。这...

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

    "cas4.2.7 实现其他系统和cas互相认证互信2"的标题意味着我们需要关注的重点是如何配置和使用CAS 4.2.7版本来与其他系统进行双向认证。这种互信认证模式通常涉及以下步骤: 1. **CAS服务器配置**:首先,你需要设置...

    CAS认证通过却停留在业务系统登录界面无法登录

    如果配置不正确,即使用户成功通过CAS认证,也无法将授权信息传递给业务系统。 2. 业务系统集成问题:业务系统需要正确地与CAS进行集成,包括设置正确的CAS客户端库、配置服务定义和服务验证URL。如果集成代码有...

    CAS+Shiro实现认证授权

    Shiro的核心组件包括Subject(当前操作用户)、Realms(认证和授权信息的数据源)、Caches(缓存策略)和Sessions(会话管理)。通过定义 Realm,Shiro 可以从数据库、LDAP、或者任何其他数据源获取用户的认证和授权...

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

    单点登录(Single Sign-On, SSO)是一种网络身份验证机制,允许用户通过一次登录就能访问多个相互关联的应用系统,而...两者在提升用户体验的同时,确保了安全性,是现代Web应用体系中不可或缺的身份管理和授权工具。

    cas原理 webflow mvc ioc

    理解和掌握这些技术的原理及其在CAS系统中的应用,对于构建复杂的企业级应用具有重要意义。通过上述分析,我们不难看出,CAS的架构设计充分考虑了安全性与用户体验的平衡,而Spring框架的引入进一步增强了系统的可...

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

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

    基于CAS的统一认证平台的设计与实现.pdf

    CAS是一种企业级的、开源的统一认证服务协议,它允许一个Web应用访问多个基于Web的应用系统时,只需要登录一次即可访问所有相互信任的应用系统。这种机制称为单点登录(Single Sign-On,简称SSO)。 2. 单点登录...

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

    5. CAS协议与SAML2.0:CAS协议是CAS服务的默认认证协议,而SAML2.0是一种更复杂的身份验证标准,支持更丰富的属性传递和更灵活的授权策略。根据需求,你可以在CAS服务器上启用SAML2.0支持,以与其他支持SAML的系统...

    cas-proxy认证

    ### CAS-Proxy 认证详解 #### 一、概述 CAS (Central Authentication Service) 是一...通过对 CAS-Proxy 认证的基本原理、配置方法以及实践案例的深入理解,可以帮助开发者更好地设计和实现基于 CAS 的单点登录系统。

    CAS5.3+windows AD域实现单点登录免身份认证.docx

    CAS 是一个开源的身份验证系统,提供了单点登录、身份验证和授权等功能。CAS 客户端可以在多种平台上运行,包括 Windows、Linux 和 macOS 等。CAS 服务器可以与多种身份验证系统集成,包括 LDAP、Active Directory ...

    CAS认证服务器接口使用基础手册V.doc

    CAS认证服务器是一种基于Java的认证服务器解决方案,用于提供安全的身份验证和授权服务。该服务器可以与多种应用系统集成,提供统一的身份验证和授权机制。 2. J2EE 接口 ### 2.1 接口介绍 CAS认证服务器提供了...

    cas 普通方式和SpringBoot方式客户端 普通方式服务端

    在本文中,我们将探讨如何在普通方式和Spring Boot方式下配置和使用CAS客户端和服务端。 首先,让我们了解一下`CMD生成证书命令.txt`。在CAS部署中,安全通信通常依赖于SSL/TLS证书,用于加密传输数据。这个文件...

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

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

    条件接收系统CAS DVB-CAS

    条件接收系统(Conditional Access System,简称CAS)是数字电视付费广播的关键技术之一,旨在防止未经授权的用户访问付费内容。CAS的核心作用在于确保只有经过授权的订阅者能够观看特定的节目,同时禁止未授权用户...

    整合spring+springWebMVC+cas客户端

    在IT行业中,集成Spring、Spring Web MVC和CAS客户端是一项常见的任务,主要用于构建安全的Web应用程序。下面将详细解释这些技术及其整合过程。 首先,Spring是一个开源的Java框架,它简化了开发过程,提供了依赖...

    开发技术-Web开发基于CAS的Web单点登录系统的应用研究.zip

    本篇文章将详细探讨基于CAS的Web单点登录系统的应用研究,旨在帮助开发者理解和实现这一技术。 一、CAS概述 CAS 是一种轻量级的认证协议,其核心思想是将用户的登录验证过程集中到一个中央服务器上,这样用户只需要...

Global site tag (gtag.js) - Google Analytics