| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.IOException; |
| | | import java.net.URI; |
| | | import java.net.URISyntaxException; |
| | | import java.net.URL; |
| | | import java.io.BufferedReader; |
| | | import java.io.InputStreamReader; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneOffset; |
| | | import java.util.List; |
| | |
| | | |
| | | /** |
| | | * 创建密钥对 |
| | | * |
| | | * @throws JoseException JoseException |
| | | */ |
| | | private RsaJsonWebKey generateRsaJsonWebKey() throws JoseException { |
| | | RsaJsonWebKey rsaJsonWebKey = null; |
| | | try { |
| | | URL url = getClass().getClassLoader().getResource("jwk.json"); |
| | | if (url != null) { |
| | | URI uri = url.toURI(); |
| | | Path path = Paths.get(uri); |
| | | if (Files.exists(path)) { |
| | | byte[] allBytes = Files.readAllBytes(path); |
| | | String jwkJson = new String(allBytes, StandardCharsets.UTF_8); |
| | | final JsonWebKeySet jsonWebKeySet = new JsonWebKeySet(jwkJson); |
| | | List<JsonWebKey> jsonWebKeys = jsonWebKeySet.getJsonWebKeys(); |
| | | if (!jsonWebKeys.isEmpty()) { |
| | | JsonWebKey jsonWebKey = jsonWebKeys.get(0); |
| | | if (jsonWebKey instanceof RsaJsonWebKey) { |
| | | rsaJsonWebKey = (RsaJsonWebKey) jsonWebKey; |
| | | } |
| | | } |
| | | try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("/jwk.json"), StandardCharsets.UTF_8))) { |
| | | String jwkJson = reader.readLine(); |
| | | JsonWebKeySet jsonWebKeySet = new JsonWebKeySet(jwkJson); |
| | | List<JsonWebKey> jsonWebKeys = jsonWebKeySet.getJsonWebKeys(); |
| | | if (!jsonWebKeys.isEmpty()) { |
| | | JsonWebKey jsonWebKey = jsonWebKeys.get(0); |
| | | if (jsonWebKey instanceof RsaJsonWebKey) { |
| | | rsaJsonWebKey = (RsaJsonWebKey) jsonWebKey; |
| | | } |
| | | } |
| | | } catch (URISyntaxException | IOException e) { |
| | | } catch (Exception e) { |
| | | // ignored |
| | | } |
| | | if (rsaJsonWebKey == null) { |