最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA中Spring Security示例及常見問題

 更新時(shí)間:2025年07月29日 10:21:23   作者:真上帝的左手  
文章概述Spring Security OAuth2與JWT模塊的版本兼容性及遷移建議,強(qiáng)調(diào)2.5.x支持JDK8但已棄用,推薦新項(xiàng)目使用SpringAuthorizationServer(Spring Boot3.x+),并指出依賴沖突、配置示例及密鑰安全注意事項(xiàng),感興趣的朋友一起看看吧

前言

Spring Security

  • spring-security-oauth2
  • spring-security-jwt

一、spring-security-oauth2

  1. 各版本的名稱及發(fā)布日期:
版本適用 Spring Boot適用 Spring Security狀態(tài)備注‌
‌2.5.x2.5.x - 2.7.x5.5.x - 5.7.x‌維護(hù)中推薦穩(wěn)定版
‌2.4.x2.4.x - 2.6.x5.4.x - 5.6.x已棄用建議升級(jí)
‌2.3.x2.3.x - 2.5.x5.3.x - 5.5.x已棄用不推薦
‌2.2.x2.2.x - 2.4.x5.2.x - 5.4.x已棄用僅舊項(xiàng)目
‌2.1.x2.1.x - 2.3.x5.1.x - 5.3.x已棄用不推薦
  1. Spring Boot 2.7.x + JDK 8‌的環(huán)境推薦版本‌
<dependency>
    <groupId>org.springframework.security.oauth</groupId>
    <artifactId>spring-security-oauth2</artifactId>
    <version>2.5.2.RELEASE</version> <!-- 最新穩(wěn)定版 -->
</dependency>
  1. Spring Security‌ 版本匹配
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>5.7.6</version> <!-- 推薦版本 -->
</dependency>
  1. 注意事項(xiàng)‌
  • Spring Security OAuth2 已棄用‌
  • 官方推薦遷移到 ‌Spring Authorization Server‌(Spring Security 5.7+ 內(nèi)置)
  • 新項(xiàng)目建議直接使用 spring-security-oauth2-authorization-server(Spring Boot 3.x+)
  • ‌JDK 8 兼容性‌

    • Spring Security OAuth2 2.5.x 仍支持 JDK 8
    • 如需升級(jí)到 Spring Boot 3.x,需切換至 JDK 17+
  • ‌常見問題‌

    • 如果遇到 NoSuchMethodError,檢查依賴沖突(如舊版 spring-security-jwt)
    • 推薦使用 spring-security-oauth2-autoconfigure 簡(jiǎn)化配置
  1. 遷移建議‌

如果計(jì)劃升級(jí),可參考以下路徑:

  • 短期方案‌:繼續(xù)使用 OAuth2 2.5.x(維護(hù)模式)
  • 長(zhǎng)期方案‌:遷移到 ‌Spring Authorization Server‌(需要 Spring Boot 3.x+)
  1. Spring Authorization Server‌

二、spring-security-jwt

  • 版本選擇‌
  • ‌spring-security-jwt‌ 最終穩(wěn)定版:
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-jwt</artifactId>
        <version>1.1.1.RELEASE</version> <!-- 官方最后維護(hù)版本 -->
    </dependency>
  • 兼容性說明‌:
    • 需搭配 spring-security-oauth2 2.5.x 使用(如 2.5.2.RELEASE)。
    • 不支持 Spring Boot 3.x 或 JDK 17+。

‌2. 基礎(chǔ)配置示例‌

  • ‌JWT 密鑰配置‌
    JwtConfig.java
@Configuration
public class JwtConfig {
    @Value("${jwt.secret}")
    private String secret;
    @Bean
    public JwtAccessTokenConverter jwtAccessTokenConverter() {
        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
        converter.setSigningKey(secret); // 設(shè)置簽名密鑰
        return converter;
    }
    @Bean
    public TokenStore tokenStore() {
        return new JwtTokenStore(jwtAccessTokenConverter());
    }
}
  • 需在 application.properties 中配置 jwt.secret=your-256-bit-secret。
  • ‌OAuth2 資源服務(wù)器配置‌
  • ResourceServerConfig.java
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/api/public/**").permitAll()
            .anyRequest().authenticated();
    }
}

‌3. 生成和解析 JWT 令牌‌

  • ‌生成令牌(授權(quán)服務(wù)器端)‌
    JwtTokenEnhancer.java
 class JwtTokenEnhancer implements TokenEnhancer {
    @Override
    public OAuth2AccessToken enhance(
        OAuth2AccessToken accessToken,
        OAuth2Authentication authentication) {
        Map<String, Object> additionalInfo = new HashMap<>();
        additionalInfo.put("organization", "example-org");
        ((DefaultOAuth2AccessToken) accessToken)
            .setAdditionalInformation(additionalInfo);
        return accessToken;
    }
}
  • ‌解析令牌(資源服務(wù)器端)‌
    JwtUtils.java
 class JwtUtils {
    public static Claims extractClaims(String token, String secret) {
        return Jwts.parser()
            .setSigningKey(secret.getBytes())
            .parseClaimsJws(token)
            .getBody();
    }
}

‌4. 注意事項(xiàng)‌

  • 密鑰安全‌:
    • 替換 JwtAccessTokenConverter 的簽名邏輯)。
  • 依賴沖突‌:
    • 避免引入 jjwt 舊版本(如 0.9.x),可能引發(fā) NoSuchMethodError。
  • 遷移建議‌:
    • 新項(xiàng)目推薦使用 spring-security-oauth2-authorization-server + jjwt 0.12.x。
  1. jjwt

到此這篇關(guān)于JAVA中Spring Security示例及常見問題的文章就介紹到這了,更多相關(guān)Spring Security示例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

柏乡县| 阿尔山市| 洮南市| 青神县| 泰来县| 临颍县| 富顺县| 响水县| 德保县| 栖霞市| 大石桥市| 平南县| 阳高县| 九寨沟县| 榆中县| 大洼县| 辽宁省| 柳州市| 仪陇县| 镇原县| 城固县| 青河县| 紫阳县| 乐都县| 甘洛县| 博白县| 铜鼓县| 广平县| 南充市| 正蓝旗| 延安市| 上思县| 达拉特旗| 印江| 英德市| 肥东县| 南溪县| 武川县| 营山县| 体育| 佛坪县|