0
Java에서 Saml 2.0 요청을 인코딩하려고하지만 온라인으로 도구를 사용하여 디코딩하면 이상한 문자가 표시됩니다. 여기 Saml 2.0 요청 인코딩
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="_8d7bd828-6f91-477a-b158-22d693f56972"
Version="2.0"
IssueInstant="2013-04-19T14:07:53Z"
AssertionConsumerServiceURL="http://test">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
test
</saml:Issuer>
<samlp:NameIDPolicy
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified"
AllowCreate="true" />
</samlp:AuthnRequest>
내가 사용하고 코드입니다 :
이
입력 문자열입니다byte[] xmlBytes = baos.toByteArray();
//Deflate
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(
byteOutputStream);
try {
deflaterOutputStream.write(xmlBytes, 0, xmlBytes.length);
deflaterOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//BASE64 encode
Base64 base64Encoder = new Base64();
byte[] base64EncodedByteArray = base64Encoder.encode(xmlBytes);
String base64EncodedMessage = new String(base64EncodedByteArray);
// URL encode
String urlEncodedMessage = null;
try {
urlEncodedMessage = URLEncoder.encode(base64EncodedMessage,"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return urlEncodedMessage;
나는 다음과 같은 결과를 얻을 수 온라인 디코딩 도구를 통해 결과 문자열을 실행하면 :
x?}[email protected][email protected]??`?0??^"??B???Gm?}W?`/^?03????,,????
?=Z}??pT??[iA?-8??q
?I
??N
?h???GYN?\pZ?"?Y:??Pt9mS??<-D?$zCc?V
Ah?A??+Zq??8??|?d??$ZZ???J+?4
?/)?u????Kf?d>9??2.cf?-X?<?&??zq?K??A?O???ImZ??`76W???n?~???6
w?m?????
^???$????ie?;??3-I??k??7????Srtion">
test
</saml:Issuer>
<samlp:NameIDPolicy
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified"
AllowCreate="true" />
</samlp:AuthnRequest>
URL 디코더와 Base64 디코더에 샘플 코드를 제공해 주시겠습니까? 일찍 답장 해주세요 .. –