mirror of
https://github.com/jeecgboot/JimuReport.git
synced 2025-10-14 06:20:23 +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.security.config.annotation.web.builders.HttpSecurity;
|
||||
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.authentication.www.BasicAuthenticationFilter;
|
||||
|
||||
/**
|
||||
* spring security 配置
|
||||
@@ -29,15 +31,19 @@ public class SpringSecurityConfig {
|
||||
"/jmreport/desreport_/**/*.png").permitAll()
|
||||
// 不需要登录的接口
|
||||
.antMatchers("/jmreport/excelQueryByTemplate",
|
||||
"/jmreport/query/report/folder/template",
|
||||
"/jmreport/img/**",
|
||||
"/jmreport/download/image",
|
||||
"/jmreport/verificationToken",
|
||||
"/jmreport/link/queryByIds",
|
||||
"/jmreport/test/getUserMsg",
|
||||
"/jmreport/test/getOrder",
|
||||
"/jimureport/test/**",
|
||||
"/jmreport/auto/export/download/**").permitAll()
|
||||
// 分享页面
|
||||
.antMatchers("/jmreport/shareView/**",
|
||||
"/jmreport/exportPdfStream",
|
||||
"/jmreport/exportAllExcelStream",
|
||||
"/jmreport/checkParam/**",
|
||||
"/jmreport/share/verification",
|
||||
"/jmreport/getQueryInfo",
|
||||
@@ -52,9 +58,14 @@ public class SpringSecurityConfig {
|
||||
.loginProcessingUrl("/login")
|
||||
.successHandler(new CustomLoginSuccessHandler())
|
||||
.permitAll().and()
|
||||
.addFilterBefore(new ApiSecurityConfigFilter(), BasicAuthenticationFilter.class)
|
||||
.logout()
|
||||
.invalidateHttpSession(true)
|
||||
.clearAuthentication(true).permitAll();
|
||||
// 开放iframe访问限制
|
||||
http.headers().frameOptions().disable();
|
||||
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS);
|
||||
http.rememberMe().useSecureCookie(true);
|
||||
|
||||
return http.build();
|
||||
}
|
||||
|
Reference in New Issue
Block a user