`

cas自定义登录异常

    博客分类:
  • cas
 
阅读更多

cas版本4.0 

定义异常类com.xxx.MyLoginException

在认证时根据实际情况抛出MyLoginException:

public class MyDatabaseAuthenticationHandler extends AbstractJdbcUsernamePasswordAuthenticationHandler {
    /** {@inheritDoc} */
    @Override
    protected final HandlerResult authenticateUsernamePasswordInternal(final UsernamePasswordCredential credential) throws GeneralSecurityException, PreventedException {
        final String username = credential.getUsername();        
        try {
        	//do sth
        	if (...){
        	    throw new MyLoginException("...");
                }

        } catch (final Exception e) {
            throw new PreventedException("exception", e);
        }
        
        return createHandlerResult(credential, new SimplePrincipal(username), null);
    }

  替换默认的认证异常处理handler:

public class MyAuthenticationExceptionHandler extends AuthenticationExceptionHandler {
	
    private List<Class<? extends Exception>> errs= new ArrayList<Class<? extends Exception>>();	

	public void init() {
		errs.addAll(getErrors());
		errs.add(com.xxx.MyLoginException.class);
		setErrors(errs);
	}
}
 cas-servlet.xml修改 
  <!-- <bean id="authenticationExceptionHandler" class="org.jasig.cas.web.flow.AuthenticationExceptionHandler" /> -->
  <bean id="authenticationExceptionHandler" class="com.xxx.MyAuthenticationExceptionHandler" init-method="init" />
 messages_*.properties加入异常类对应的消息

authenticationFailure.MyLoginException=登录失败异常...

 

login-webflow.xml加入异常转向的页面处理

 

  <action-state id="handleAuthenticationFailure">
......
    <transition on="MyLoginException" to="generateLoginTicket"/>
......
  </action-state>

 

 

分享到:
评论

相关推荐

    CAS4.0 自定义客服端登陆界面,客服端与服务端

    cas4.0版本的 单点登录 自定义页面。希望对你有用,最低资源分,辛苦分。有问题可以交流学习。谢谢

    cas-server-webapp

    改造cas,实现自定义登录页面,及错误跳转。具体参考我的博客 http://blog.csdn.net/just_lion/article/details/17204979

    cas客户端登陆配置文档

    8. **异常处理和错误页面**:确保正确处理各种可能的CAS相关异常,如认证失败、票据无效等,并配置合适的错误页面以提供用户友好的反馈。 9. **测试和调试**:完成配置后,进行详尽的测试,确保登录、登出、票证...

    spring boot 1.5.4 集成shiro+cas,实现单点登录和权限控制.docx

    例如,定义哪些URL需要认证,哪些需要授权,以及自定义认证和授权逻辑。 5. **CAS服务器配置**: CAS服务器需要配置服务提供方(SP,Service Provider)的信息,如服务的URL、公钥证书等。此外,还需要配置客户端...

    Netty(集成跨平台远程登录)_nettyCAS登入_netty远程登陆_

    Netty 远程登陆则涉及到网络通信和身份验证的结合。在这个场景下,Netty 作为服务器端,接收客户端的登录请求,通过一系列的身份验证过程确认用户合法性,然后允许用户访问远程资源。这一过程中,可能包括用户名密码...

    单点登陆测试

    9. **自定义配置**:根据组织的需求,CAS可以进行定制化配置,如自定义认证策略、主题界面等。 在进行Yale CAS测试时,以下是一些关键点: 1. **功能测试**:验证登录、登出、服务票证验证等功能是否正常运行。 2....

    单点登陆服务端配置

    5. **自定义认证逻辑**:根据实际需求,可能需要编写自定义的认证处理器来处理特定的认证逻辑,例如与内部系统进行交互验证用户信息。 6. **客户端集成**:对于每一个使用SSO的服务,都需要进行相应的客户端配置,...

    java单点登录流程及其他

    log.warn("Spring Security 捕获到异常,由 AuthenticationEntryPoint 进行处理:", e); response.setContentType("application/json; charset=utf-8"); String message = "操作失败,您当前未登录!"; ...

    tapestry5.3.5 IOC用户登陆权限

    Tapestry允许你定义自定义的错误页面和异常处理器来展示错误信息或重定向用户到合适的页面。 6. **单点登录(SSO)**:文件名`tapestrySSO`可能意味着这个示例包含了单点登录的实现。SSO允许用户在一个系统登录后,...

    Spring Security3技术手册

    - **4.1 实现自定义登陆页面** - 创建一个HTML页面作为登录界面,并配置Spring Security来使用这个页面。 - **示例代码**: HTML页面的示例代码。 - **4.2 修改配置文件** - 在`spring-security.xml`中配置自定义...

    spring security

    - **ExceptionTranslationFilter**: 将认证和授权异常转换成合适的响应。 - **SessionFixationProtectionFilter**: 防止会话固定攻击。 - **FilterSecurityInterceptor**: 核心拦截器,负责执行访问决策。 - **...

    spring security2 安全手册(牛人写的)

    - **ExceptionTranslationFilter**:解释异常转换过滤器如何处理安全相关的异常。 - **SessionFixationProtectionFilter**:介绍如何防止会话固定攻击。 - **FilterSecurityInterceptor**:讲解如何通过此拦截器实现...

    java实现可跨浏览器单点登录

    Spring Security的Cas-Client可以与CAS(Central Authentication Service)服务器集成,实现基于Cookie的SSO。Apache Shiro则提供了灵活的身份验证和授权框架,可以自定义实现SSO逻辑。 3. **服务提供者(SP)配置*...

    考拉开发指南

    - **登陆** - **定义**:解释用户如何登录系统。 - **实例**:给出登录流程的截图。 - **页面元素管理** - **定义**:描述如何管理页面元素的可见性。 - **实例**:给出页面元素管理的代码示例。 - **URL访问...

    JAVA上百实例源码以及开源项目源代码

    多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本...

Global site tag (gtag.js) - Google Analytics