<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>JWT on 知识铺的博客</title>
    <link>https://index.zshipu.com/geek001/tags/JWT/</link>
    <description>Recent content in JWT on 知识铺的博客</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Sun, 28 Apr 2024 07:02:08 +0000</lastBuildDate>
    <atom:link href="https://index.zshipu.com/geek001/tags/JWT/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>基于Shiro和Pac4j实现单点登录与JWT整合</title>
      <link>https://index.zshipu.com/geek001/post/20240428/%E5%9F%BA%E4%BA%8EShiro%E5%92%8CPac4j%E5%AE%9E%E7%8E%B0%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95%E4%B8%8EJWT%E6%95%B4%E5%90%88--%E7%9F%A5%E8%AF%86%E9%93%BA/</link>
      <pubDate>Sun, 28 Apr 2024 07:02:08 +0000</pubDate>
      <guid>https://index.zshipu.com/geek001/post/20240428/%E5%9F%BA%E4%BA%8EShiro%E5%92%8CPac4j%E5%AE%9E%E7%8E%B0%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95%E4%B8%8EJWT%E6%95%B4%E5%90%88--%E7%9F%A5%E8%AF%86%E9%93%BA/</guid>
      <description>1、依赖pom.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shiro&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shiro-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.4.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shiro&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shiro-spring&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.4.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shiro&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shiro-web&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.4.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.pac4j&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;pac4j-cas&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;3.0.2&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;io.buji&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;buji-pac4j&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.auth0&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;java-jwt&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;3.2.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.pac4j&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;pac4j-jwt&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;3.0.2&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;io.jsonwebtoken&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jjwt&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;0.7.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; 2、web.xml配</description>
    </item>
    <item>
      <title>CAS单点登录-客户端集成(shiro springboot jwt pac4j)（十）</title>
      <link>https://index.zshipu.com/geek001/post/20240428/CAS%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95-%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%9B%86%E6%88%90shiro-springboot-jwt-pac4j%E5%8D%81--%E7%9F%A5%E8%AF%86%E9%93%BA/</link>
      <pubDate>Sun, 28 Apr 2024 06:51:08 +0000</pubDate>
      <guid>https://index.zshipu.com/geek001/post/20240428/CAS%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95-%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%9B%86%E6%88%90shiro-springboot-jwt-pac4j%E5%8D%81--%E7%9F%A5%E8%AF%86%E9%93%BA/</guid>
      <description>CAS单点登录-客户端集成(shiro springboot jwt pac4j)（十） 由于我们通常在业务上会有以下的使用场景： 移动端通过业务系统鉴权 移动端免登录（登录一次以后） 解决方案： JWT(token认证方案) OAuth(第三方认证) PS：若想继续往下读，必须具备JWT的基本概念以及Pac4j的认证原</description>
    </item>
    <item>
      <title>Shiro安全配置</title>
      <link>https://index.zshipu.com/geek001/post/20240428/Shiro%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE--%E7%9F%A5%E8%AF%86%E9%93%BA/</link>
      <pubDate>Sun, 28 Apr 2024 06:32:08 +0000</pubDate>
      <guid>https://index.zshipu.com/geek001/post/20240428/Shiro%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE--%E7%9F%A5%E8%AF%86%E9%93%BA/</guid>
      <description>package com.carl.wolf.permission.config; import io.buji.pac4j.filter.CallbackFilter; import io.buji.pac4j.filter.LogoutFilter; import io.buji.pac4j.filter.SecurityFilter; import io.buji.pac4j.realm.Pac4jRealm; import io.buji.pac4j.subject.Pac4jSubjectFactory; import org.apache.shiro.mgt.DefaultSecurityManager; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.mgt.SubjectFactory; import org.apache.shiro.realm.Realm; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.spring.web.config.AbstractShiroWebFilterConfiguration; import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition; import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition; import org.pac4j.cas.client.CasClient; import org.pac4j.cas.client.rest.CasRestFormClient; import org.pac4j.cas.config.CasConfiguration; import org.pac4j.cas.config.CasProtocol; import org.pac4j.core.client.Clients; import org.pac4j.core.config.Config; import org.pac4j.http.client.direct.ParameterClient; import org.pac4j.jwt.config.encryption.SecretEncryptionConfiguration; import org.pac4j.jwt.config.signature.SecretSignatureConfiguration; import org.pac4j.jwt.credentials.authenticator.JwtAuthenticator; import org.pac4j.jwt.profile.JwtGenerator; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.servlet.Filter; import java.util.HashMap; import java.util.Map; /** * 对shiro的安全配置，是对cas的登录策略进行配置 * * @author Carl * @date 2017/9/16 * @since 1.0.0 */ @Configuration public class ShiroConfiguration extends AbstractShiroWebFilterConfiguration { &amp;lt;br&amp;gt; @Value``(``&amp;quot;#{ @environment[&#39;cas.prefixUrl&#39;] ?: null }&amp;quot;``) private String prefixUrl; @Value``(``&amp;quot;#{ @environment[&#39;cas.loginUrl&#39;] ?: null }&amp;quot;``) private String casLoginUrl; @Value``(``&amp;quot;#{ @environment[&#39;cas.callbackUrl&#39;] ?: null }&amp;quot;``) private String callbackUrl; @Value``(``&amp;quot;${jwt.salt}&amp;quot;``) private String salt; @Bean public Realm</description>
    </item>
  </channel>
</rss>
