Merge pull request #9 from CodeCraftersCN/fix/#8
Adjusted the order of bean initialisations.
This commit is contained in:
+1
-1
@@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>devkit-core</artifactId>
|
<artifactId>devkit-core</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>devkit-utils</artifactId>
|
<artifactId>devkit-utils</artifactId>
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>guid</artifactId>
|
<artifactId>guid</artifactId>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
<inceptionYear>2023</inceptionYear>
|
<inceptionYear>2023</inceptionYear>
|
||||||
|
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>simple-jwt-authzero</artifactId>
|
<artifactId>simple-jwt-authzero</artifactId>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>simple-jwt-facade</artifactId>
|
<artifactId>simple-jwt-facade</artifactId>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>simple-jwt-jjwt</artifactId>
|
<artifactId>simple-jwt-jjwt</artifactId>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>simple-jwt-spring-boot-starter</artifactId>
|
<artifactId>simple-jwt-spring-boot-starter</artifactId>
|
||||||
|
|||||||
+4
-1
@@ -25,11 +25,13 @@ import com.auth0.jwt.interfaces.DecodedJWT;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.DependsOn;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -61,6 +63,8 @@ import org.springframework.context.annotation.Bean;
|
|||||||
@EnableConfigurationProperties(value = {SimpleJwtProperties.class})
|
@EnableConfigurationProperties(value = {SimpleJwtProperties.class})
|
||||||
@ConditionalOnClass({DecodedJWT.class, AuthzeroTokenResolver.class})
|
@ConditionalOnClass({DecodedJWT.class, AuthzeroTokenResolver.class})
|
||||||
@ConditionalOnMissingBean({TokenResolver.class})
|
@ConditionalOnMissingBean({TokenResolver.class})
|
||||||
|
@ConditionalOnBean(value = {GuidCreator.class}, name = "jtiCreator")
|
||||||
|
@AutoConfigureAfter(value = GuidAutoConfiguration.class)
|
||||||
public class AuthzeroTokenResolverAutoConfiguration {
|
public class AuthzeroTokenResolverAutoConfiguration {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -96,7 +100,6 @@ public class AuthzeroTokenResolverAutoConfiguration {
|
|||||||
* @return the {@link TokenResolver} instance
|
* @return the {@link TokenResolver} instance
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean(value = {GuidCreator.class}, name = "jtiCreator")
|
|
||||||
public TokenResolver<DecodedJWT> tokenResolver() {
|
public TokenResolver<DecodedJWT> tokenResolver() {
|
||||||
return new AuthzeroTokenResolver(
|
return new AuthzeroTokenResolver(
|
||||||
jtiCreator,
|
jtiCreator,
|
||||||
|
|||||||
+4
-1
@@ -18,10 +18,13 @@
|
|||||||
package cn.org.codecrafters.simplejwt.autoconfiguration;
|
package cn.org.codecrafters.simplejwt.autoconfiguration;
|
||||||
|
|
||||||
import cn.org.codecrafters.guid.GuidCreator;
|
import cn.org.codecrafters.guid.GuidCreator;
|
||||||
|
import cn.org.codecrafters.simplejwt.autoconfiguration.conditions.GuidCreatorCondition;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.SearchStrategy;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Conditional;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@@ -32,10 +35,10 @@ import java.util.UUID;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@AutoConfiguration
|
@AutoConfiguration
|
||||||
@ConditionalOnMissingBean(value = GuidCreator.class, name = "jtiCreator")
|
|
||||||
public class GuidAutoConfiguration {
|
public class GuidAutoConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@Conditional(GuidCreatorCondition.class)
|
||||||
public GuidCreator<?> jtiCreator() {
|
public GuidCreator<?> jtiCreator() {
|
||||||
return UUID::randomUUID;
|
return UUID::randomUUID;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -19,7 +19,6 @@ package cn.org.codecrafters.simplejwt.autoconfiguration;
|
|||||||
|
|
||||||
import cn.org.codecrafters.guid.GuidCreator;
|
import cn.org.codecrafters.guid.GuidCreator;
|
||||||
import cn.org.codecrafters.simplejwt.TokenResolver;
|
import cn.org.codecrafters.simplejwt.TokenResolver;
|
||||||
import cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver;
|
|
||||||
import cn.org.codecrafters.simplejwt.autoconfiguration.properties.SimpleJwtProperties;
|
import cn.org.codecrafters.simplejwt.autoconfiguration.properties.SimpleJwtProperties;
|
||||||
import cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver;
|
import cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
@@ -27,6 +26,7 @@ import io.jsonwebtoken.Jws;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
@@ -63,6 +63,8 @@ import org.springframework.context.annotation.Bean;
|
|||||||
@EnableConfigurationProperties(value = {SimpleJwtProperties.class})
|
@EnableConfigurationProperties(value = {SimpleJwtProperties.class})
|
||||||
@ConditionalOnClass({Jws.class, Claims.class, JjwtTokenResolver.class})
|
@ConditionalOnClass({Jws.class, Claims.class, JjwtTokenResolver.class})
|
||||||
@ConditionalOnMissingBean({TokenResolver.class})
|
@ConditionalOnMissingBean({TokenResolver.class})
|
||||||
|
@ConditionalOnBean(value = {GuidCreator.class}, name = "jtiCreator")
|
||||||
|
@AutoConfigureAfter(value = GuidAutoConfiguration.class)
|
||||||
public class JjwtTokenResolverAutoConfiguration {
|
public class JjwtTokenResolverAutoConfiguration {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,7 +100,6 @@ public class JjwtTokenResolverAutoConfiguration {
|
|||||||
* @return the {@link TokenResolver} instance
|
* @return the {@link TokenResolver} instance
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean(value = {GuidCreator.class}, name = "jtiCreator")
|
|
||||||
public TokenResolver<Jws<Claims>> tokenResolver() {
|
public TokenResolver<Jws<Claims>> tokenResolver() {
|
||||||
return new JjwtTokenResolver(
|
return new JjwtTokenResolver(
|
||||||
jtiCreator,
|
jtiCreator,
|
||||||
|
|||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
package cn.org.codecrafters.simplejwt.autoconfiguration.conditions;
|
||||||
|
|
||||||
|
import cn.org.codecrafters.guid.GuidCreator;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.context.annotation.Condition;
|
||||||
|
import org.springframework.context.annotation.ConditionContext;
|
||||||
|
import org.springframework.core.type.AnnotatedTypeMetadata;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GuidCreatorCondition
|
||||||
|
* <p>
|
||||||
|
* Created on 28 Aug 2023
|
||||||
|
*
|
||||||
|
* @author Zihlu Wang
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class GuidCreatorCondition implements Condition {
|
||||||
|
@Override
|
||||||
|
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
|
||||||
|
final var beanFactory = Objects.requireNonNull(context.getBeanFactory());
|
||||||
|
var isContainJtiCreator = beanFactory.containsBean("jtiCreator");
|
||||||
|
if (isContainJtiCreator) {
|
||||||
|
return !(beanFactory.getBean("jtiCreator") instanceof GuidCreator<?>);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -23,7 +23,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.org.codecrafters</groupId>
|
<groupId>cn.org.codecrafters</groupId>
|
||||||
<artifactId>jdevkit</artifactId>
|
<artifactId>jdevkit</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>webcal</artifactId>
|
<artifactId>webcal</artifactId>
|
||||||
|
|||||||
Reference in New Issue
Block a user