@ApiOperation(value = "創建/修改用戶地址", notes = "根據id判斷是否要修改, 創建時不需要id")
@PostMapping("/upsert")
@LoginRequired
public RespEntity<Boolean> upsert(@RequestBody @Valid UpsertDeliveryAddressReqDTO dto) {
.....
上面這段代碼,執行順序我發現,程式首先校驗了一遍 UpsertDeliveryAddressReqDTO, 然后才去判斷是否要登錄(LoginRequired),如果想先校驗登錄,應該怎么寫?
uj5u.com熱心網友回復:
在線等,挺急的
uj5u.com熱心網友回復:
最簡單的處理 把認證的邏輯寫到filter里面去 完美解決uj5u.com熱心網友回復:
寫登錄代碼,然后呼叫
uj5u.com熱心網友回復:

filter攔截需要寫url路徑,用起來有點麻煩呀
uj5u.com熱心網友回復:
大佬,別這樣
uj5u.com熱心網友回復:
建議去看看shiro或者spring security的相關配置,誰不是基于filter去做攔截的?如果不知道攔截url怎么配置,那再去學學servlet和filteruj5u.com熱心網友回復:
最簡單的處理 把認證的邏輯寫到filter里面去 完美解決
filter攔截需要寫url路徑,用起來有點麻煩呀
用自定義注解,配置在需要登錄的url
uj5u.com熱心網友回復:
都是先校驗引數合法性,再進行介面方法呼叫;如果想先呼叫方法,再校驗引數,可以手動校驗呼叫spring的校驗,public static <T> void validate(T obj, Class<?>... groups) {
Set<ConstraintViolation<T>> constraintViolations = Validation.byProvider(HibernateValidator.class).configure().failFast(true).validate(obj, groups);
if (constraintViolations != null && !constraintViolations.isEmpty()) {
List<String> msgs = new ArrayList<>();
constraintViolations.forEach(con -> msgs.add(con.getMessage()));
throw new ValidationException(msgs.toArray(new String[0]));
}
uj5u.com熱心網友回復:
最簡單的處理 把認證的邏輯寫到filter里面去 完美解決
filter攔截需要寫url路徑,用起來有點麻煩呀
只需要過濾掉白名單的路徑就可以了,白名單你可以用MySQL,Redis,zk等中間件來保存,只要不是白名單下的路徑,一律驗證
uj5u.com熱心網友回復:
建議去看看shiro或者spring security的相關配置,誰不是基于filter去做攔截的?如果不知道攔截url怎么配置,那再去學學servlet和filter 最簡單的處理 把認證的邏輯寫到filter里面去 完美解決
filter攔截需要寫url路徑,用起來有點麻煩呀
uj5u.com熱心網友回復:
是不是可以調整下filter的順序轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247008.html
標籤:Web 開發
