Java 解密Saml令牌时获取错误
我在解密saml令牌时出错。但是,此问题并不一致,它在重新启动服务器后工作。直到昨晚它还正常工作:( 早些时候,我得到了无效密钥大小错误,我在 但我不确定这是否会对美国安全政策法产生任何影响 但此解密异常未得到解决且不一致。重新启动服务器后,它将开始工作 在过去的2-3天里,我尝试了所有的方法。我认为问题发生在元数据刷新之后,所以我尝试将下面的属性添加到ResourceBackedMetadataProviderbean中,但没有成功Java 解密Saml令牌时获取错误,java,spring-security,saml-2.0,adfs2.0,spring-saml,Java,Spring Security,Saml 2.0,Adfs2.0,Spring Saml,我在解密saml令牌时出错。但是,此问题并不一致,它在重新启动服务器后工作。直到昨晚它还正常工作:( 早些时候,我得到了无效密钥大小错误,我在 但我不确定这是否会对美国安全政策法产生任何影响 但此解密异常未得到解决且不一致。重新启动服务器后,它将开始工作 在过去的2-3天里,我尝试了所有的方法。我认为问题发生在元数据刷新之后,所以我尝试将下面的属性添加到ResourceBackedMetadataProviderbean中,但没有成功 <property name="parserPool"
<property name="parserPool" ref="parserPool"/>
<property name="minRefreshDelay" value="120000"/>
<property name="maxRefreshDelay" value="300000"/>
然后我调试WebsProfileConsumerImpl.java代码,认为这可能是与此相关的问题,所以我签出了最新的代码并创建了新的jar并添加到我的项目中,但运气不佳。在花了一周的时间调试和谷歌搜索之后,我决定用一点小技巧解决这个问题
<property name="parserPool" ref="parserPool"/>
<property name="minRefreshDelay" value="120000"/>
<property name="maxRefreshDelay" value="300000"/>
我从gitHub Repository的Master分支签出Spring Saml源代码,构建jar并将其导入到我的项目中。我认为这个问题与我的类似,所以我尝试使用最新的代码,但没有成功
<property name="parserPool" ref="parserPool"/>
<property name="minRefreshDelay" value="120000"/>
<property name="maxRefreshDelay" value="300000"/>
因此,我决定调试xmlTooling.jar代码并找到确切的故障点,然后在xmlchipher.java
中用下面的代码重写下面的方法decryptKey(EncryptedKey EncryptedKey,String algorithm)
Cipher c = constructCipher(encryptedKey.getEncryptionMethod()
.getAlgorithm(), encryptedKey.getEncryptionMethod()
.getDigestAlgorithm());
Instead of calling
c.init(4, key, oaepParameters);
used below code and removed if/else block
c.init(4, key);
您可以从中签出自定义jar
您需要在pom.xml文件中用下面的行更新saml依赖项,以使用此自定义jar
<dependency>
<groupId>org.springframework.security.extensions</groupId>
<artifactId>spring-security-saml2-core</artifactId>
<version>1.0.1.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>xmlsec</artifactId>
<groupId>org.apache.santuario</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<artifactId>xmlsec</artifactId>
<groupId>org.apache.santuario</groupId>
<version>1.5.6-custom</version>
</dependency>
org.springframework.security.extensions
spring-security-saml2-core
1.0.1.1发布
xmlsec
org.apache.santuario
xmlsec
org.apache.santuario
1.5.6-定制
如果有人找到更好的解决方案,请告诉我