- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近尝试使用中继方服务公钥加密 Saml2 断言。不幸的是,我什至无法完成测试阶段
这是我的代码
public class EncryptionTest {
public static void main(String args[]){
try {
// The Assertion to be encrypted
FileInputStream fis;
DataInputStream in, in2;
File f = new File("src/main/resources/AssertionTest");
byte[] buffer = new byte[(int) f.length()];
in = new DataInputStream(new FileInputStream(f));
in.readFully(buffer);
in.close();
//Assertion = DataInputStream.readUTF(in);
String in_assert = new String(buffer);
System.out.println(in_assert);
org.apache.axiom.om.OMElement OMElementAssertion = org.apache.axiom.om.util.AXIOMUtil.stringToOM(in_assert);
Assertion assertion = convertOMElementToAssertion2(OMElementAssertion);
// Assume this contains a recipient's RSA public key
Credential keyEncryptionCredential;
keyEncryptionCredential = getCredentialFromFilePath("src/main/resources/cert.pem");
EncryptionParameters encParams = new EncryptionParameters();
encParams.setAlgorithm(EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128);
KeyEncryptionParameters kekParams = new KeyEncryptionParameters();
kekParams.setEncryptionCredential(keyEncryptionCredential);
kekParams.setAlgorithm(EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP);
KeyInfoGeneratorFactory kigf =
Configuration.getGlobalSecurityConfiguration()
.getKeyInfoGeneratorManager().getDefaultManager()
.getFactory(keyEncryptionCredential);
kekParams.setKeyInfoGenerator(kigf.newInstance());
Encrypter samlEncrypter = new Encrypter(encParams, kekParams);
samlEncrypter.setKeyPlacement(KeyPlacement.PEER);
EncryptedAssertion encryptedAssertion = samlEncrypter.encrypt(assertion);
System.out.println(encryptedAssertion);
} catch (EncryptionException e) {
e.printStackTrace();
} catch (CertificateException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (KeyException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (XMLStreamException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
public static Credential getCredentialFromFilePath(String certPath) throws IOException, CertificateException, KeyException {
InputStream inStream = new FileInputStream(certPath);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cert = cf.generateCertificate(inStream);
inStream.close();
//"Show yourself!"
System.out.println(cert.toString());
BasicX509Credential cred = new BasicX509Credential();
cred.setEntityCertificate((java.security.cert.X509Certificate) cert);
cred.setPrivateKey(null);
//System.out.println(cred.toString());
return cred;
//return (Credential) org.opensaml.xml.security.SecurityHelper.getSimpleCredential( (X509Certificate) cert, privatekey);
}
public static Assertion convertOMElementToAssertion2(OMElement element) {
Element assertionSAMLDOOM = (Element) new StAXOMBuilder(DOOMAbstractFactory.getOMFactory(), element.getXMLStreamReader()).getDocumentElement();
try {
UnmarshallerFactory unmarshallerFactory = Configuration.getUnmarshallerFactory();
Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(Assertion.DEFAULT_ELEMENT_NAME);
return (Assertion) unmarshaller.unmarshall(assertionSAMLDOOM);
} catch (Exception e1) {
System.out.println("error: " + e1.toString());
}
return null;
}
}
KeyInfoGeneratorFactory kigf =
Configuration.getGlobalSecurityConfiguration()
.getKeyInfoGeneratorManager().getDefaultManager()
.getFactory(keyEncryptionCredential);
kekParams.setKeyInfoGenerator(kigf.newInstance());
最佳答案
这个问题悬而未决太久了。问题是 OpenSaml 的初始化。
简单的
DefaultBootstrap.bootstrap();
关于encryption - 使用公钥 (opensaml) 的 SAML2 断言加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598066/
我们可以设置签名算法如下: signature.setSignatureAlgorithm("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
我正在使用 Spring SAML ,来自 国内流离失所者 响应 我接收颁发者作为属性 ID,所以我想在 spring saml 中接收后更改响应,所以我重写了方法 unmarshall,它将解析消息
在我们的应用程序中,我们正在尝试升级到 Spring boot 2,我们正在使用 spring-security-saml2-core:1.0.4.RELEASE,在运行应用程序时我们遇到以下异常。看
我被分配了在我的公司和客户之间实现 SAML 的任务。我正在考虑使用 OpenSAML,但我正在努力设置 Maven 项目。 我添加依赖项: org.opensaml opensaml 2.5.1
我尝试使用 Open Saml 2 从 Idp 读取元数据。当我尝试解码元数据时,openSaml 仅显示属性 getUnknownAtrributes() 的 getter。看起来我遗漏了一些要点,
我正在尝试对使用 OpenSAML 从身份提供商获取的 SAML2 响应进行签名验证。我正在尝试读取本地文件系统的响应。 这是我的代码: DefaultBootstrap.bootstrap();
我正在尝试创建 SAML 响应。构成断言的属性之一称为地址,属性值需要是在 XSD 中定义的自定义类型。如何将自定义属性值类型添加到响应中? 最佳答案 如果你的属性值 XML 是 String 形式:
我在 opensaml2.6 上运行这段代码 Element metadataRoot = document.getDocumentElement(); // Unmarshall Unmarshal
本文整理了Java中org.opensaml.xml.XMLConfigurator类的一些代码示例,展示了XMLConfigurator类的具体用法。这些代码示例主要来源于Github/Stacko
我正在构建一个 SAML 2.0 AuthNRequest。 我设法使用 OpenSaml 添加了签名信息,但我找不到添加 的方法和 使用图书馆的值(value)。 这是代码: public
我和我的团队正在使用 opensaml 生成 SAML token 。我们已经设法完成此设置,但另一个团队的成员告诉我们,如果我们能够对生成的 token 进行一些配置,他们将不胜感激。 他们希望我们
我已经使用 Opensaml 解密了一个 SAML 断言。尽管解密没有错误,但当我尝试验证该断言的签名时,它失败并出现错误 "org.apache.xml.security.signature.Mis
您好,我目前正在将应用程序移植到 opensaml3 并遇到以下问题: InitializationService.initialize(); ... Unmarshaller unmarshalle
我在 Tomcat 8 中运行一个使用 OpenSAML 的网络应用程序。我已经在 Tomcat 中认可了 Xerces,我检查了认可的目录路径是否设置正确,看起来一切正常: [ajp-apr-800
我正在尝试通过签署响应而不是声明来实现 SAML 2.0。我有 3 个现有供应商在断言级别接受我的签名,但是一个新供应商在协议(protocol)/响应级别请求它。我已经用谷歌搜索和调试了大约 8 个
我目前正在设置 SAML IDP。起初,我认为 spring-security-saml 会帮助我,但我发现它只有助于设置 SAML 协议(protocol)的 SP 端。 所以我想:走吧,让我们使用
我正在为充当服务提供商的应用程序使用 opensaml。到目前为止,我一直在手动创建 SP 元数据。 Java 中是否有示例显示如何以编程方式生成服务提供者元数据 ? 最佳答案 EntityDescr
好吧,这是另一个“我不知道从哪里开始”的问题,所以希望答案很简单。但是,我真的不知道要搜索什么,到目前为止我的尝试没有多大用处。 我想从一个(当前在磁盘上的)文件中读取私钥。最终 key 将驻留在数据
本文整理了Java中org.opensaml.xml.schema.XSBooleanValue类的一些代码示例,展示了XSBooleanValue类的具体用法。这些代码示例主要来源于Github/S
本文整理了Java中org.opensaml.xml.schema.XSBase64Binary类的一些代码示例,展示了XSBase64Binary类的具体用法。这些代码示例主要来源于Github/S
我是一名优秀的程序员,十分优秀!