2016-11-01 12 views
0

jose.4.j으로 새 Key을 만드는 방법을 알 수 있습니다.하지만 OdeDC에서 검색 끝점의 일부로 사용할 수있는 공개적으로 액세스 가능한 JSON 목록을 출력하는 방법이 궁금합니다. IETF draft example 같은 뭔가 ... 나는 분명 뭔가 나는 개인 키를 표시하지 않는 toString()처럼 누락이 상상jose.4.j를 사용하여 JWK set endpoint를 출력하는 방법?

{"keys": 
    [ 
    {"kty":"EC", 
     "crv":"P-256", 
     "x":"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4", 
     "y":"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM", 
     "use":"enc", 
     "kid":"1"}, 

    {"kty":"RSA", 
     "n": "0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx 
4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMs 
tn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2 
QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbI 
SD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqb 
w0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw", 
     "e":"AQAB", 
     "alg":"RS256", 
     "kid":"2011-04-29"} 
    ] 
} 

?

+0

P.S. - 때로는 StackOverflow에 대한 질문을 통해 내 머리를 올바른 방향으로 생각하게하는 데 도움이됩니다. 그래서이 바보 같은 질문에 사과드립니다. –

답변

2

과 함께 전화 할 때 JsonWebKeySet에는 String toJson(JsonWebKey.OutputControlLevel outputControlLevel) 방법이 있으며 공용 부분 만 포함됩니다. 그것은 당신이 찾고있는 것을 당신에게 줄 것입니다. JsonWebKeySet은 JsonWebKeys 목록으로 인스턴스화 할 수 있습니다.

RsaJsonWebKey rsaJwk1 = RsaJwkGenerator.generateJwk(2048); 
    RsaJsonWebKey rsaJwk2 = RsaJwkGenerator.generateJwk(2048); 
    EllipticCurveJsonWebKey ecJwk = EcJwkGenerator.generateJwk(EllipticCurves.P256); 

    JsonWebKeySet jwks = new JsonWebKeySet(rsaJwk1, rsaJwk2, ecJwk); 

    String jwksJson = jwks.toJson(JsonWebKey.OutputControlLevel.PUBLIC_ONLY); 

    System.out.println(jwksJson); 

줄까요 예를 들어이 같은

뭔가,

{"keys":[{"kty":"RSA","n":"4cejS2CzkJuoLe9ry1JDdS_-RkpR2UMLialeH9WleuQFbFT3caK-GtNwObcd9_xEZ2H7um2GgZuscCMepo7d0FmwQUnfnTy9-_ckdgvVCH6lF62H3Jd4FBWAlcp_100kEJUe9YwfytdJ0zpOLo5Q38kH31cyMZmZRfexf33CzMNhlgE3mydpM9NAOAnR8IXW43tl1lPEy_dvLE9kM4idIjhd5Xd0a_YmRr05PK4UgFot0cuzZgu0HHe1qM7aFevwSOQ_Y86g4ofjZWHQWGJRN6WCBlGLscUwB52-hlJC0GrVEI0Cb55bfAfu01P1eFTjwyjfwggyLFZLdiAkZl2Jkw","e":"AQAB"},{"kty":"RSA","n":"jyOndkwyHBaHMn1xTIPfKV8PulJi6lcqqnw3sOabE-hClQr6De_OEcMnfCHPuogz1oep0A7-SvjY6Lclp0Pa5JDnHy6fI8UkSmASS6cwEUVWg18taFazRu2GtKDmMzT0Sh7ZCRGLWU74p5hRHGCerVnLcJUqSzT7kuGViZWVaIt00SfI6OImDpJTnaoxSwasdrhIZ_j5ARM93B2RKFsEb1kZ_gPnlP_0Qzs62LLG-78QQzlfMTd6v29vNr1FPPeZe744ni5Rpp19vEfEShGSV6Vz8K_Z2JlYC8PA_cRx47FLvmj9fB1u_wWYNP5ryGjv2E5Vjy9tqnIOmmtByoTdFw","e":"AQAB"},{"kty":"EC","x":"EEzQrpMmJ4XQgJFNGFNVI2WLmoaIpMYBTNF1_D5lp2U","y":"rENpzGhayZRoVR-7cFWJKElDQdJkJrKrDJ0-FqNpstA","crv":"P-256"}]}