mirror of
https://github.com/jeecgboot/JimuReport.git
synced 2025-10-14 23:00:24 +00:00
更新代码
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
package com.jeecg.modules.jmreport.config;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.jeecg.modules.jmreport.common.util.OkConvertUtils;
|
||||||
|
import org.springframework.security.core.context.SecurityContextImpl;
|
||||||
|
|
||||||
|
import javax.servlet.*;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: api访问权限过滤器
|
||||||
|
*
|
||||||
|
* @author: wangshuai
|
||||||
|
* @date: 2024/9/25 下午6:22
|
||||||
|
*/
|
||||||
|
public class ApiSecurityConfigFilter implements Filter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||||
|
HttpServletRequest req = (HttpServletRequest) request;
|
||||||
|
String loginFrom = req.getHeader("jm_login_from");
|
||||||
|
if(OkConvertUtils.isNotEmpty(loginFrom)){
|
||||||
|
String springSecurityContext = req.getHeader("jm_spring_security_context");
|
||||||
|
if(OkConvertUtils.isNotEmpty(springSecurityContext)){
|
||||||
|
SecurityContextImpl securityContext = JSONObject.parseObject(springSecurityContext, SecurityContextImpl.class);
|
||||||
|
HttpSession session = req.getSession();
|
||||||
|
session.setAttribute("loginFrom", loginFrom);
|
||||||
|
session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
chain.doFilter(request, response);
|
||||||
|
}
|
||||||
|
}
|
@@ -4,7 +4,9 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
|
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||||
import org.springframework.security.web.SecurityFilterChain;
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
|
import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* spring security 配置
|
* spring security 配置
|
||||||
@@ -29,15 +31,19 @@ public class SpringSecurityConfig {
|
|||||||
"/jmreport/desreport_/**/*.png").permitAll()
|
"/jmreport/desreport_/**/*.png").permitAll()
|
||||||
// 不需要登录的接口
|
// 不需要登录的接口
|
||||||
.antMatchers("/jmreport/excelQueryByTemplate",
|
.antMatchers("/jmreport/excelQueryByTemplate",
|
||||||
|
"/jmreport/query/report/folder/template",
|
||||||
"/jmreport/img/**",
|
"/jmreport/img/**",
|
||||||
"/jmreport/download/image",
|
"/jmreport/download/image",
|
||||||
"/jmreport/verificationToken",
|
"/jmreport/verificationToken",
|
||||||
"/jmreport/link/queryByIds",
|
"/jmreport/link/queryByIds",
|
||||||
"/jmreport/test/getUserMsg",
|
"/jmreport/test/getUserMsg",
|
||||||
"/jmreport/test/getOrder",
|
"/jmreport/test/getOrder",
|
||||||
|
"/jimureport/test/**",
|
||||||
"/jmreport/auto/export/download/**").permitAll()
|
"/jmreport/auto/export/download/**").permitAll()
|
||||||
// 分享页面
|
// 分享页面
|
||||||
.antMatchers("/jmreport/shareView/**",
|
.antMatchers("/jmreport/shareView/**",
|
||||||
|
"/jmreport/exportPdfStream",
|
||||||
|
"/jmreport/exportAllExcelStream",
|
||||||
"/jmreport/checkParam/**",
|
"/jmreport/checkParam/**",
|
||||||
"/jmreport/share/verification",
|
"/jmreport/share/verification",
|
||||||
"/jmreport/getQueryInfo",
|
"/jmreport/getQueryInfo",
|
||||||
@@ -52,9 +58,14 @@ public class SpringSecurityConfig {
|
|||||||
.loginProcessingUrl("/login")
|
.loginProcessingUrl("/login")
|
||||||
.successHandler(new CustomLoginSuccessHandler())
|
.successHandler(new CustomLoginSuccessHandler())
|
||||||
.permitAll().and()
|
.permitAll().and()
|
||||||
|
.addFilterBefore(new ApiSecurityConfigFilter(), BasicAuthenticationFilter.class)
|
||||||
.logout()
|
.logout()
|
||||||
.invalidateHttpSession(true)
|
.invalidateHttpSession(true)
|
||||||
.clearAuthentication(true).permitAll();
|
.clearAuthentication(true).permitAll();
|
||||||
|
// 开放iframe访问限制
|
||||||
|
http.headers().frameOptions().disable();
|
||||||
|
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS);
|
||||||
|
http.rememberMe().useSecureCookie(true);
|
||||||
|
|
||||||
return http.build();
|
return http.build();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user