From b8d4b76bef4e96612e84182fc42547b65725d80d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=80=A1=E8=93=89?= <377046077@qq.com> Date: Tue, 10 Jun 2025 11:20:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=8C=81=E6=9C=BA=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BasCargoSpaceController.java | 2 + .../mapper/BasCargoSpaceMapper.java | 2 + .../service/IBasCargoSpaceService.java | 2 + .../impl/BasCargoSpaceServiceImpl.java | 3 + .../in/stockin/mapper/InStockinMapper.java | 2 + .../in/stockin/service/IInStockinService.java | 2 + .../service/impl/InStockinServiceImpl.java | 6 ++ .../ruoyi/pda/controller/PdaController.java | 82 +++++++++++++++++-- .../com/ruoyi/pda/domain/TrayCodeMsg.java | 20 +++++ .../java/com/ruoyi/pda/mapper/PdaMapper.java | 4 + .../com/ruoyi/pda/service/PdaService.java | 5 ++ .../com/ruoyi/pda/service/PdaServiceImp.java | 40 +++++++-- .../stock/stock/mapper/BasStockMapper.java | 2 + .../stock/stock/service/IBasStockService.java | 2 + .../service/impl/BasStockServiceImpl.java | 5 +- .../bas/cargoSpace/BasCargoSpaceMapper.xml | 1 + .../resources/mapper/in/InStockinMapper.xml | 35 ++++++++ .../main/resources/mapper/pda/PdaMapper.xml | 19 ++++- .../resources/mapper/stock/BasStockMapper.xml | 6 ++ .../framework/config/SecurityConfig.java | 58 ++++++------- 20 files changed, 252 insertions(+), 46 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/controller/BasCargoSpaceController.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/controller/BasCargoSpaceController.java index b231baa..21d9cfa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/controller/BasCargoSpaceController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/controller/BasCargoSpaceController.java @@ -103,4 +103,6 @@ public class BasCargoSpaceController extends BaseController { return toAjax(basCargoSpaceService.deleteBasCargoSpaceByCargoSpaceIds(cargoSpaceIds)); } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java index 730863d..e1433a1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java @@ -60,4 +60,6 @@ public interface BasCargoSpaceMapper extends BaseMapper * @return 结果 */ public int deleteBasCargoSpaceByCargoSpaceIds(String[] cargoSpaceIds); + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java index deee496..49e8aca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java @@ -60,4 +60,6 @@ public interface IBasCargoSpaceService extends IService * @return 结果 */ public int deleteBasCargoSpaceByCargoSpaceId(String cargoSpaceId); + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java index 680d8ae..96583ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.sql.Wrapper; +import java.util.Collections; import java.util.List; /** @@ -95,4 +96,6 @@ public class BasCargoSpaceServiceImpl extends ServiceImpl selectStockinByDetail(String stockinDetailId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java index a9f73e8..fb5276c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java @@ -60,4 +60,6 @@ public interface IInStockinService * @return 结果 */ public int deleteInStockinByStockinGuid(String stockinGuid); + + public List selectStockinByDetail(String stockinDetailId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java index 0142f01..c591742 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.in.stockin.service.impl; import java.util.Arrays; +import java.util.Collections; import java.util.List; import cn.hutool.core.collection.CollUtil; @@ -147,4 +148,9 @@ public class InStockinServiceImpl implements IInStockinService { return inStockinMapper.deleteInStockinByStockinGuid(stockinGuid); } + + @Override + public List selectStockinByDetail(String stockinDetailId) { + return inStockinMapper.selectStockinByDetail(stockinDetailId); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java index 9e137bf..2017479 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java @@ -1,5 +1,9 @@ package com.ruoyi.pda.controller; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; +import com.ruoyi.bas.warehouse.domain.BasWarehouse; +import com.ruoyi.bas.warehouse.service.IBasWarehouseService; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; @@ -7,12 +11,15 @@ import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.service.IInStockinService; import com.ruoyi.pda.domain.TrayCodeMsg; import com.ruoyi.pda.service.PdaService; -import io.swagger.v3.oas.annotations.parameters.RequestBody; +import com.ruoyi.stock.stock.domain.BasStock; +import com.ruoyi.stock.stock.service.IBasStockService; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.HashMap; import java.util.List; import static com.ruoyi.common.utils.PageUtils.startPage; @@ -25,6 +32,10 @@ public class PdaController extends BaseController { private PdaService pdaService; @Autowired private IInStockinService inStockinService; + @Autowired + private IBasStockService basStockService; + @Autowired + private IBasWarehouseService basWarehouseService; /** * 空托盘入库 @@ -34,8 +45,16 @@ public class PdaController extends BaseController { @RequestMapping("/emptyTrayIn") @ResponseBody public AjaxResult emptyTrayIn(@RequestBody TrayCodeMsg trayCodeMsg) { - AjaxResult ajaxResult = pdaService.emptyTrayIn(trayCodeMsg); - return ajaxResult; + BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId()); + if(basWarehouse==null){ + return AjaxResult.error("仓库不存在"); + }else{ + if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){ + return AjaxResult.error("请选择高架库货位"); + } + + } + return pdaService.emptyTrayIn(trayCodeMsg); } /** @@ -48,12 +67,61 @@ public class PdaController extends BaseController { return ajaxResult; } + /** + * 空托盘库存查询 + * @param warehouseId + * @return + */ + @RequestMapping("/selectKTPStcok") + @ResponseBody + public AjaxResult selectKTPStcok(String warehouseId) { + + List basStockList = basStockService.selectKtpStock(warehouseId); + + if (basStockList.size() != 0) { + return AjaxResult.success(basStockList); + }else{ + return AjaxResult.error("此区域没有空托盘库存"); + } + + } + + /** + * 空托盘出库 + * @param + * @return + */ + @RequestMapping("/emptyTrayOut") + @ResponseBody + public AjaxResult emptyTrayOut(@RequestBody TrayCodeMsg trayCodeMsg ) { + BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId()); + if (basWarehouse == null){ + return AjaxResult.error("仓库不存在"); + }else{ + if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){ + return AjaxResult.error("请选择高架库货位"); + } + } + return pdaService.emptyTrayOut(trayCodeMsg); + } + + /** + * 空料箱出库 + * @param trayCodeMsg + * @return + */ + @RequestMapping("/emptyBoxOut") + @ResponseBody + public AjaxResult emptyBoxOut(@RequestBody TrayCodeMsg trayCodeMsg) { + return pdaService.emptyBoxOut(trayCodeMsg); + } + + @RequestMapping("/inorder/list") @ResponseBody - public TableDataInfo inoderList(InStockin stockin) { - startPage(); - List stockins = inStockinService.selectInStockinList(stockin); - return getDataTable(stockins); + public List inoderList(String stockinDetailId) { + List stockins = inStockinService.selectStockinByDetail(stockinDetailId); + return stockins; } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java index ca1e13a..7f745af 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMsg.java @@ -10,6 +10,26 @@ private String quantity; private String entranceId; +private String cargoSpaceId; + +private String exitId; + + public String getExitId() { + return exitId; + } + + public void setExitId(String exitId) { + this.exitId = exitId; + } + + public String getCargoSpaceId() { + return cargoSpaceId; + } + + public void setCargoSpaceId(String cargoSpaceId) { + this.cargoSpaceId = cargoSpaceId; + } + public String getEntranceId() { return entranceId; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java index 803b630..70e93d5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java @@ -7,4 +7,8 @@ public interface PdaMapper { void emptyTrayIn(HashMap map); void emptyBoxIn(HashMap map); + + void emptyTrayOut(HashMap map); + + void emptyBoxOut(HashMap map); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java index 0ec8c97..20e2f35 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java @@ -2,10 +2,15 @@ package com.ruoyi.pda.service; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.pda.domain.TrayCodeMsg; +import org.apache.poi.ss.formula.functions.T; public interface PdaService { public AjaxResult emptyTrayIn(TrayCodeMsg trayCodeMsg); public AjaxResult emptyBoxIn(TrayCodeMsg trayCodeMsg); + + public AjaxResult emptyTrayOut(TrayCodeMsg trayCodeMsg); + + public AjaxResult emptyBoxOut(TrayCodeMsg trayCodeMsg); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java index e7eec99..f26aaf1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java @@ -28,15 +28,11 @@ public class PdaServiceImp implements PdaService{ map.put("v_tray_code", trayCodeMsg.getTrayCode()); map.put("v_warehouse_id", trayCodeMsg.getWarehouseId()); map.put("v_quantity", "1"); + map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId()); pdaMapper.emptyTrayIn(map); - String result = (String) map.get("v_result"); - String cargoSpaceId = map.get("v_cargo_space_id").toString(); - if(StrUtil.isNotEmpty(cargoSpaceId)){ - BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(cargoSpaceId); - map.put("v_cargo_space_id", basCargoSpace.getCargoSpaceName()); - } + String result = map.get("v_result").toString(); if("10".equals(result)){ - return AjaxResult.success(map); + return AjaxResult.success(map.get("v_resultmsg").toString()); }else{ return AjaxResult.error(map.get("v_resultmsg").toString()); } @@ -52,9 +48,10 @@ public class PdaServiceImp implements PdaService{ public AjaxResult emptyBoxIn(TrayCodeMsg trayCodeMsg) { HashMap map = new HashMap<>(); map.put("v_tray_code", trayCodeMsg.getTrayCode()); + map.put("v_warehouse_id", trayCodeMsg.getWarehouseId()); map.put("v_entrance_id", trayCodeMsg.getEntranceId()); pdaMapper.emptyBoxIn(map); - String result = (String) map.get("v_result"); + String result = map.get("v_result").toString(); if("10".equals(result)){ return AjaxResult.success(map.get("v_resultmsg").toString()); }else{ @@ -63,5 +60,32 @@ public class PdaServiceImp implements PdaService{ } + @Override + public AjaxResult emptyTrayOut(TrayCodeMsg trayCodeMsg) { + HashMap map = new HashMap<>(); + map.put("v_warehouse_id", trayCodeMsg.getWarehouseId()); + map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId()); + pdaMapper.emptyTrayOut(map); + String result = map.get("v_result").toString(); + if("10".equals(result)){ + return AjaxResult.success(map.get("v_resultmsg").toString()); + }else{ + return AjaxResult.warn(map.get("v_resultmsg").toString()); + } + } + + @Override + public AjaxResult emptyBoxOut(TrayCodeMsg trayCodeMsg) { + HashMap map = new HashMap<>(); + map.put("v_warehouse_id", trayCodeMsg.getWarehouseId()); + map.put("v_exit_id", trayCodeMsg.getExitId()); + pdaMapper.emptyBoxOut(map); + String result = map.get("v_result").toString(); + if("10".equals(result)){ + return AjaxResult.success(map.get("v_resultmsg").toString()); + }else{ + return AjaxResult.warn(map.get("v_resultmsg").toString()); + } + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java index 0def9d6..9dd3d0f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java @@ -60,4 +60,6 @@ public interface BasStockMapper public int deleteBasStockByStockIds(String[] stockIds); void insertBasStockList(List list); + + List selectKtpStock(String warehouseId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java index 8048f50..d686833 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java @@ -62,4 +62,6 @@ public interface IBasStockService public int deleteBasStockByStockId(String stockId); void insertBasStockList(List list); + + List selectKtpStock(String warehouseId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java index e534ff1..171030a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java @@ -175,5 +175,8 @@ public class BasStockServiceImpl implements IBasStockService basStockMapper.insertBasStockList(list); } - + @Override + public List selectKtpStock(String warehouseId) { + return basStockMapper.selectKtpStock(warehouseId); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml index 410b4ce..2ba6c5c 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml @@ -140,4 +140,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{cargoSpaceId} + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/in/InStockinMapper.xml b/ruoyi-admin/src/main/resources/mapper/in/InStockinMapper.xml index 7fff78f..cf9eb93 100644 --- a/ruoyi-admin/src/main/resources/mapper/in/InStockinMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/in/InStockinMapper.xml @@ -188,4 +188,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{stockinGuid} + + diff --git a/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml b/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml index c689cbb..06e92a3 100644 --- a/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml @@ -11,17 +11,34 @@ #{v_tray_code,mode=IN,jdbcType=VARCHAR}, #{v_warehouse_id,mode=IN,jdbcType=VARCHAR}, #{v_quantity,mode=IN,jdbcType=VARCHAR}, + #{v_cargo_space_id,mode=IN,jdbcType=VARCHAR}, #{v_result,mode=OUT,jdbcType=INTEGER}, #{v_resultmsg,mode=OUT,jdbcType=VARCHAR} )} - + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml index 543d7c4..7072e97 100644 --- a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml @@ -247,4 +247,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{stockId} + + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index f9627a3..ac59916 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -97,35 +97,35 @@ public class SecurityConfig protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { return httpSecurity - // CSRF禁用,因为不使用session - .csrf(csrf -> csrf.disable()) - // 禁用HTTP响应标头 - .headers((headersCustomizer) -> { - headersCustomizer.cacheControl(cache -> cache.disable()).frameOptions(options -> options.sameOrigin()); - }) - // 认证失败处理类 - .exceptionHandling(exception -> exception.authenticationEntryPoint(unauthorizedHandler)) - // 基于token,所以不需要session - .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - // 注解标记允许匿名访问的url - .authorizeHttpRequests((requests) -> { - permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); - // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - requests.antMatchers("/login", "/register", "/captchaImage").permitAll() - // 静态资源,可匿名访问 - .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() - .antMatchers("/swagger-ui.html","/changeLanguage", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() - // 除上面外的所有请求全部需要鉴权认证 - .anyRequest().authenticated(); - }) - // 添加Logout filter - .logout(logout -> logout.logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler)) - // 添加JWT filter - .addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class) - // 添加CORS filter - .addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class) - .addFilterBefore(corsFilter, LogoutFilter.class) - .build(); + // CSRF禁用,因为不使用session + .csrf(csrf -> csrf.disable()) + // 禁用HTTP响应标头 + .headers((headersCustomizer) -> { + headersCustomizer.cacheControl(cache -> cache.disable()).frameOptions(options -> options.sameOrigin()); + }) + // 认证失败处理类 + .exceptionHandling(exception -> exception.authenticationEntryPoint(unauthorizedHandler)) + // 基于token,所以不需要session + .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + // 注解标记允许匿名访问的url + .authorizeHttpRequests((requests) -> { + permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); + // 对于登录login 注册register 验证码captchaImage 允许匿名访问 + requests.antMatchers("/login", "/register", "/captchaImage").permitAll() + // 静态资源,可匿名访问 + .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() + .antMatchers("/swagger-ui.html","/changeLanguage", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**","/pda/**").permitAll() + // 除上面外的所有请求全部需要鉴权认证 + .anyRequest().authenticated(); + }) + // 添加Logout filter + .logout(logout -> logout.logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler)) + // 添加JWT filter + .addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class) + // 添加CORS filter + .addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class) + .addFilterBefore(corsFilter, LogoutFilter.class) + .build(); } /**