1、调整币种汇率模块

2、新增保险记录模块
3、新增违章记录模块
4、新增换胎记录模块
5、新增事故记录模块
6、新增年检记录模块
7、新增里程记录模块
8、新增变更记录模块
9、新增油电记录模块
10、新增ETC记录模块
11、新增其他费用记录模块
This commit is contained in:
2026-07-17 15:32:00 +08:00
parent 34ee6e6269
commit 31c68a857a
197 changed files with 16907 additions and 115 deletions

View File

@@ -0,0 +1,79 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.auth.endpoint;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor;
import org.springblade.core.oauth2.endpoint.OAuth2TokenEndPoint;
import org.springblade.core.oauth2.provider.OAuth2Response;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* IAM统一身份认证端点
*
* @author Chill
*/
@RestController
@AllArgsConstructor
@RequestMapping("/iam/sso")
@Tag(name = "IAM统一身份认证", description = "IAM统一身份认证端点")
public class IamSsoEndpoint {
private static final String GRANT_TYPE = "iam_sso";
private final OAuth2TokenEndPoint tokenEndPoint;
/**
* IAM统一身份认证登录
*
* @param request 请求信息
* @return token
*/
@PostMapping("/token")
@Operation(summary = "IAM统一身份认证登录", description = "使用IAM授权码换取本系统Token")
public ResponseEntity<Kv> token(HttpServletRequest request) {
String grantType = request.getParameter("grant_type");
if (!StringUtil.equals(GRANT_TYPE, grantType)) {
return ResponseEntity.ok(
OAuth2Response.create().ofFailure(400, "IAM统一身份认证接口仅支持iam_sso授权类型")
);
}
if (StringUtil.isBlank(request.getParameter("code"))) {
return ResponseEntity.ok(
OAuth2Response.create().ofFailure(400, "IAM统一身份认证授权码不能为空")
);
}
return tokenEndPoint.token();
}
}

View File

@@ -81,6 +81,7 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
private static final String GRANT_TYPE = "iam_sso";
private static final String IAM_GRANT_TYPE = "authorization_code";
private static final String IAM_TOKEN_URI = "/iam/sso/token";
private static final String BEARER_PREFIX = "Bearer ";
private static final String BASIC_PREFIX = "Basic ";
@@ -123,6 +124,9 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
@Override
public OAuth2User user(OAuth2Request request) {
if (!isDedicatedIamEndpoint(request)) {
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
}
if (!isIamRequest(request, true)) {
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
}
@@ -196,6 +200,11 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
return isIamRequest(request, false);
}
private boolean isDedicatedIamEndpoint(OAuth2Request request) {
return request.getHttpRequest() != null
&& request.getHttpRequest().getRequestURI().endsWith(IAM_TOKEN_URI);
}
private boolean isIamRequest(OAuth2Request request, boolean logMiss) {
String redirectUri = normalizeRedirectUri(request.getRedirectUri());
boolean iamRequest = StringUtil.isNotBlank(properties.getRedirectUri())