package tech.powerjob.server.auth.jwt.impl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import tech.powerjob.server.auth.jwt.SecretProvider; import tech.powerjob.common.utils.DigestUtils; import javax.annotation.Resource; /** * PowerJob 默认实现 * * @author tjq * @since 2023/3/20 */ @Slf4j @Component public class DefaultSecretProvider implements SecretProvider { @Resource private Environment environment; private static final String PROPERTY_KEY = "spring.datasource.core.jdbc-url"; @Override public String fetchSecretKey() { // 考虑到大部分用户都是开箱即用,此处还是提供一个相对安全的默认实现。JDBC URL 部署时必会改,skey 不固定,更安全 try { String propertyValue = environment.getProperty(PROPERTY_KEY); if (StringUtils.isNotEmpty(propertyValue)) { String md5 = DigestUtils.md5(propertyValue); log.debug("[DefaultSecretProvider] propertyValue: {} ==> md5: {}", propertyValue, md5); if (StringUtils.isNotEmpty(md5)) { return md5; } } } catch (Exception ignore) { } return "ZQQZJ"; } }