JWT_BEARER flow; log config
parent
5e61dab461
commit
4d04888a26
|
@ -197,6 +197,7 @@ or [400]
|
|||
|
||||
## JWT_BEARER flow
|
||||
- Core-Class: JwtClientAssertionAuthenticationProvider
|
||||
- URL: http://localhost:8080/oauth2/token
|
||||
-
|
||||
|
||||
|
||||
|
|
|
@ -13,21 +13,30 @@
|
|||
</appender>
|
||||
|
||||
<!--按天生成日志-->
|
||||
<!-- <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
|
||||
<!-- <prudent>true</prudent>-->
|
||||
<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<prudent>true</prudent>
|
||||
|
||||
<!-- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
|
||||
<!-- <fileNamePattern>logs/%d{yyyy-MM-dd}/sos-%i.log</fileNamePattern>-->
|
||||
<!-- <maxFileSize>10MB</maxFileSize>-->
|
||||
<!-- <maxHistory>15</maxHistory>-->
|
||||
<!-- <timeBasedFileNamingAndTriggeringPolicy-->
|
||||
<!-- class="ch.qos.logback.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy">-->
|
||||
<!-- </timeBasedFileNamingAndTriggeringPolicy>-->
|
||||
<!-- </rollingPolicy>-->
|
||||
<!-- <encoder>-->
|
||||
<!-- <pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5level] [%.80c{10}][%L] -%m%n</pattern>-->
|
||||
<!-- </encoder>-->
|
||||
<!-- </appender>-->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>logs/%d{yyyy-MM-dd}/sos-%i.log</fileNamePattern>
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
<maxHistory>15</maxHistory>
|
||||
<timeBasedFileNamingAndTriggeringPolicy
|
||||
class="ch.qos.logback.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy">
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5level] [%.80c{10}][%L] -%m%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
|
||||
<logger name="com.monkeyk.sos" level="DEBUG" additivity="false">
|
||||
<appender-ref ref="fileAppender"/>
|
||||
</logger>
|
||||
|
||||
<logger name="org.springframework.security" level="DEBUG" additivity="false">
|
||||
<appender-ref ref="fileAppender"/>
|
||||
</logger>
|
||||
|
||||
<!-- root配置放最后 -->
|
||||
<root level="INFO">
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package com.monkeyk.sos.service;
|
||||
|
||||
import com.nimbusds.jose.*;
|
||||
import com.nimbusds.jose.crypto.MACSigner;
|
||||
import com.nimbusds.jwt.JWTClaimsSet;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
/**
|
||||
* 2023/10/24 10:25
|
||||
*
|
||||
* @author Shengzhao Li
|
||||
* @since 3.0.0
|
||||
*/
|
||||
public class JwtBearerFlowTest {
|
||||
|
||||
|
||||
/**
|
||||
* MAC 生成 token
|
||||
* HS256
|
||||
* method: CLIENT_SECRET_JWT
|
||||
*
|
||||
* @throws Exception e
|
||||
*/
|
||||
@Test
|
||||
void macToken() throws Exception {
|
||||
|
||||
String clientId = "vLIXDF9GXg6Psfh1uzwVFUj0fucX2Zn9";
|
||||
// client_secret 加密后的值
|
||||
String macSecret = "$2a$10$kjjdfA8SIuhlVx0q4B1GYeU..9TNU9.Aj6Vdc2v/iQTJhhmT/0xCi";
|
||||
|
||||
JWSSigner jwsSigner = new MACSigner(macSecret);
|
||||
|
||||
JWSHeader header = new JWSHeader(JWSAlgorithm.HS256);
|
||||
|
||||
|
||||
JWTClaimsSet claimsSet = new JWTClaimsSet.Builder()
|
||||
.subject(clientId)
|
||||
.issuer(clientId)
|
||||
.audience("http://127.0.0.1:8080")
|
||||
.expirationTime(Date.from(Instant.now().plusSeconds(300L)))
|
||||
.build();
|
||||
|
||||
Payload payload = new Payload(claimsSet.toJSONObject());
|
||||
|
||||
JWSObject jwsObject = new JWSObject(header, payload);
|
||||
//签名
|
||||
jwsObject.sign(jwsSigner);
|
||||
|
||||
String idToken = jwsObject.serialize();
|
||||
assertNotNull(idToken);
|
||||
System.out.println(idToken);
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue