From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期一, 19 六月 2023 14:44:19 +0800 Subject: [PATCH] 删除 --- src/main/java/com/gk/firework/Config/Oauth2/LoginAuthenticationFilter.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gk/firework/Config/Oauth2/LoginAuthenticationFilter.java b/src/main/java/com/gk/firework/Config/Oauth2/LoginAuthenticationFilter.java new file mode 100644 index 0000000..3ae47ca --- /dev/null +++ b/src/main/java/com/gk/firework/Config/Oauth2/LoginAuthenticationFilter.java @@ -0,0 +1,77 @@ +package com.gk.firework.Config.Oauth2; + + +import com.gk.firework.Domain.Utils.Constants; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.security.web.util.matcher.OrRequestMatcher; +import org.springframework.security.web.util.matcher.RequestMatcher; +import org.springframework.stereotype.Component; +import org.springframework.web.filter.GenericFilterBean; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Optional; + +/** + * 添加用户授权统一过滤【对登录类型支持】 + * + * @author zhangby + * @date 2019-04-09 16:41 + */ +@Component +public class LoginAuthenticationFilter extends GenericFilterBean implements ApplicationContextAware { + + private static final String OAUTH_TOKEN_URL = "/oauth/token"; + + private RequestMatcher requestMatcher; + + public LoginAuthenticationFilter(){ + this.requestMatcher = new OrRequestMatcher( + new AntPathRequestMatcher(OAUTH_TOKEN_URL, "GET"), + new AntPathRequestMatcher(OAUTH_TOKEN_URL, "POST") + ); + } + + /** + * 过滤拦截 + * @param servletRequest + * @param servletResponse + * @param filterChain + * @throws IOException + * @throws ServletException + */ + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + + HttpServletRequest request = (HttpServletRequest) servletRequest; + HttpServletResponse response = (HttpServletResponse) servletResponse; + + if(requestMatcher.matches(request)){ + try{ + //设置集成登录信息 + String auth_type = request.getParameter("auth_type"); + System.setProperty(Constants.AUTH_TYPE, Optional.ofNullable(auth_type).orElse("")); + //预处理 + filterChain.doFilter(request,response); + //后置处理 + }finally { + System.clearProperty(Constants.AUTH_TYPE); + } + }else{ + filterChain.doFilter(request,response); + } + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + + } +} -- Gitblit v1.9.2