CAS 5.3.1系列之客戶端對接(五)


CAS 5.3.1系列之客戶端對接(五)

我們要接入客戶端可以常用第三方的庫cas-client-autoconfig-support來對接,比較快捷,迅速實現,或者可以用cas-client-support-springboot集成到boot項目

pom配置:

<!-- CAS依賴包 -->
        <dependency>
            <groupId>net.unicon.cas</groupId>
            <artifactId>cas-client-autoconfig-support</artifactId>
            <version>1.5.0-GA</version>
        </dependency>

application.yml配置:

cas:
  server-login-url: http://127.0.0.1:8080/cas/login
  server-url-prefix: http://127.0.0.1:8080/cas
  client-host-url: http://127.0.0.1:8082

可以自定義一個重定向策略類,這里還是和默認的策略一樣,可以根據項目需要自行更改

package org.muses.jeeplatform.oa.cas;

import org.jasig.cas.client.authentication.AuthenticationRedirectStrategy;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class CustomAuthticationRedirectStrategy implements AuthenticationRedirectStrategy {

    @Override
    public void redirect(HttpServletRequest request, HttpServletResponse response, String potentialRedirectUrl) throws IOException {
//        response.setCharacterEncoding("utf-8");
//        response.setContentType("application/json; charset=utf-8");
//        PrintWriter out = response.getWriter();
//        out.write("401");
        //response重定向
        response.sendRedirect(potentialRedirectUrl);
    }
}

然后通過配置類,實現CasClientConfigurerAdapter類,記得配置類要加上@EnableCasClient注解,開啟CAS支持:

package org.muses.jeeplatform.oa.config;

import net.unicon.cas.client.configuration.CasClientConfigurerAdapter;
import net.unicon.cas.client.configuration.EnableCasClient;
import org.jasig.cas.client.authentication.AuthenticationFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;

/**
 * <pre>
 *	CAS配置類
 * </pre>
 *
 * @author nicky
 * <pre>
 * 修改記錄
 *    修改后版本:     修改人:  修改日期: 2020年04月11日  修改內容:
 * </pre>
 */
@Configuration
@EnableCasClient
public class CASConfig extends CasClientConfigurerAdapter {


    private static final String CAS_SERVER_URL_LOGIN = "http://127.0.0.1:8080/cas/login";
    private static final String SERVER_NAME = "http://127.0.0.1:8082/";

    private static final String AUTHENTICATION_REDIRECT_STRATEGY_CLASS  = "org.muses.jeeplatform.oa.cas.CustomAuthticationRedirectStrategy";

    @Override
    public void configureAuthenticationFilter(FilterRegistrationBean authenticationFilter) {
        super.configureAuthenticationFilter(authenticationFilter);
        authenticationFilter.getInitParameters().put("authenticationRedirectStrategyClass",AUTHENTICATION_REDIRECT_STRATEGY_CLASS);
    }

    @Override
    public void configureValidationFilter(FilterRegistrationBean validationFilter) {
        Map<String, String> initParameters = validationFilter.getInitParameters();
        initParameters.put("encodeServiceUrl", "false");
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean(){
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(new AuthenticationFilter());
        registrationBean.addUrlPatterns("/*");
        Map<String, String> initParameters = new HashMap<String,String>(4);
        initParameters.put("casServerLoginUrl",CAS_SERVER_URL_LOGIN);
        initParameters.put("serverName",SERVER_NAME);
        initParameters.put("ignorePattern","/logoutSuccess/*");
        // 自定義重定向策略
        initParameters.put("authenticationRedirectStrategyClass", AUTHENTICATION_REDIRECT_STRATEGY_CLASS);
        registrationBean.setInitParameters(initParameters);
        registrationBean.setOrder(1);
        return registrationBean;
    }


}

訪問項目時候,如果沒登錄過,會跳到CAS進行認證授權,授權通過才會返回主頁
在這里插入圖片描述

代碼例子參考:github下載鏈接

詳情可以參考官方文檔:https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties.html

優質參考博客:
https://www.cnblogs.com/jpeanut/tag/CAS/
https://blog.csdn.net/anumbrella/category_7765386.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM