|
| 1 | +/* |
| 2 | + * Copyright (c) 2021 Bixbit - Krzysztof Benedyczak. All rights reserved. |
| 3 | + * See LICENCE.txt file for licensing information. |
| 4 | + */ |
| 5 | + |
| 6 | +package pl.edu.icm.unity.oauth.as.token; |
| 7 | + |
| 8 | +import static org.hamcrest.CoreMatchers.is; |
| 9 | +import static org.junit.Assert.assertThat; |
| 10 | + |
| 11 | +import org.junit.Test; |
| 12 | + |
| 13 | +import pl.edu.icm.unity.oauth.as.OAuthToken; |
| 14 | + |
| 15 | +public class OAuthTokenParsingTest |
| 16 | +{ |
| 17 | + |
| 18 | + @Test |
| 19 | + public void shouldParseTokenWithMultiAudience() |
| 20 | + { |
| 21 | + OAuthToken token = OAuthToken.getInstanceFromJson( |
| 22 | + ("{\"userInfo\":\"{\\\"name\\\":\\\"Default Administrator\\\",\\\"sub\\\":\\\"12a1197c-9c89-44b9-b889-740263cdb6b7\\\"," |
| 23 | + + "\\\"picture\\\":\\\"url\\\",\\\"username\\\":\\\"a\\\"}\"," |
| 24 | + + "\"openidInfo\":\"eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvbG9jYWxob3N0OjI0NDNcL29hdXRoMiIsInN1YiI6IjEyYTExOTdjLTljODktNDRiOS1iODg5LTc0MDI2M2NkYjZiNyIsImF1ZCI6Im9hdXRoLWNsaWVudCIsImV4cCI6MTY2NTkwODMwOCwiaWF0IjoxNjY1OTA0NzA4fQ.NK3QnylysQgFKY9801dnt_BSMZ6N53XZqlEnPp4iXiRCS-8v9o_qdRnQFuBkqtVotBfi9ZbRVZQk8796IUy_WZg9euQVvGgIKQCYKSp54JsMvP7cDyJ0cpoeMuclLrZ62L-PDJm1PKGXCCoJkrnP2qErVne4xDyjSwFwmEwSmsQVGBjEA8TXl6hcAha4cl5hpL5SdxTagGgmd_Hs0zfpyTjwqR2XByOb9fV6-NOHluatcnKp-EROPn_o-Vdi0uyY7ENbP2Q-ftiqG0KHoGN2HDS6IRypBrAqBhtOnQAIZ35PnFrsKlMVZu4nN-9B6cJq_upaWlliLke3_JicPLivRKimGLEQyjvQb3cKy1Jj3YKKO1DK-rr5UOJXfm_Yffw7l8qlOMXmn2re0274R3OsTTOxS9CD4piGlG5crucQ5xK7I2Z5ye6WUcRSM76jmn-6_HeY3xudeulYdnGPUDojJB43F0NhQcB49ihPur_vYLsS4-GvrZ4o0WWbgQ7jtUUb3Y5lDgJTj7a7FMGtQHAmGmvGpqtAUtQLY5bcjC84zcLAZsDIYLsDZA3HyD0qvMy0QOmZy-G6ikHZ5os2jdqDLETLjteFT0ODuR2wO6olwaWYCmcLkSjeFkGR2eJP4MH3ljgYtgUt0Q5VQN34dkv2sKFYD5BxOr3M5mtD5jxgGAk\"," |
| 25 | + + "\"authzCode\":\"-xWGHBib3P6oGQVxx1neQMxHwiJnaX7vhdUV7GiBEXQ\",\"accessToken\":\"tY0x-AKE71CWesO9S28BoPgMTF1nFijHoFzm10YYL7U\"," |
| 26 | + + "\"refreshToken\":null,\"firstRefreshRollingToken\":null,\"effectiveScope\":[\"openid\",\"profile\"]," |
| 27 | + + "\"requestedScope\":[\"openid\",\"profile\"]," |
| 28 | + + "\"redirectUri\":\"https://localhost:2443/unitygw/oauth2ResponseConsumer\"," |
| 29 | + + "\"subject\":\"12a1197c-9c89-44b9-b889-740263cdb6b7\",\"clientName\":null," |
| 30 | + + "\"clientUsername\":\"oauth-client\",\"maxExtendedValidity\":0,\"tokenValidity\":3600," |
| 31 | + + "\"responseType\":\"code\",\"audience\":[\"oauth-client\", \"oauth-client2\"]," |
| 32 | + + "\"issuerUri\":\"https://localhost:2443/oauth2\",\"clientType\":\"CONFIDENTIAL\"," |
| 33 | + + "\"pkcsInfo\":{\"codeChallenge\":null,\"codeChallengeMethod\":null},\"clientId\":3}") |
| 34 | + .getBytes()); |
| 35 | + |
| 36 | + assertThat(token.getAudience().get(0), is("oauth-client")); |
| 37 | + assertThat(token.getAudience().get(1), is("oauth-client2")); |
| 38 | + |
| 39 | + } |
| 40 | + |
| 41 | + @Test |
| 42 | + public void shouldParseTokenWithSingleAudience() |
| 43 | + { |
| 44 | + OAuthToken token = OAuthToken.getInstanceFromJson( |
| 45 | + ("{\"userInfo\":\"{\\\"name\\\":\\\"Default Administrator\\\",\\\"sub\\\":\\\"12a1197c-9c89-44b9-b889-740263cdb6b7\\\"," |
| 46 | + + "\\\"picture\\\":\\\"url\\\",\\\"username\\\":\\\"a\\\"}\"," |
| 47 | + + "\"openidInfo\":\"eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvbG9jYWxob3N0OjI0NDNcL29hdXRoMiIsInN1YiI6IjEyYTExOTdjLTljODktNDRiOS1iODg5LTc0MDI2M2NkYjZiNyIsImF1ZCI6Im9hdXRoLWNsaWVudCIsImV4cCI6MTY2NTkwODMwOCwiaWF0IjoxNjY1OTA0NzA4fQ.NK3QnylysQgFKY9801dnt_BSMZ6N53XZqlEnPp4iXiRCS-8v9o_qdRnQFuBkqtVotBfi9ZbRVZQk8796IUy_WZg9euQVvGgIKQCYKSp54JsMvP7cDyJ0cpoeMuclLrZ62L-PDJm1PKGXCCoJkrnP2qErVne4xDyjSwFwmEwSmsQVGBjEA8TXl6hcAha4cl5hpL5SdxTagGgmd_Hs0zfpyTjwqR2XByOb9fV6-NOHluatcnKp-EROPn_o-Vdi0uyY7ENbP2Q-ftiqG0KHoGN2HDS6IRypBrAqBhtOnQAIZ35PnFrsKlMVZu4nN-9B6cJq_upaWlliLke3_JicPLivRKimGLEQyjvQb3cKy1Jj3YKKO1DK-rr5UOJXfm_Yffw7l8qlOMXmn2re0274R3OsTTOxS9CD4piGlG5crucQ5xK7I2Z5ye6WUcRSM76jmn-6_HeY3xudeulYdnGPUDojJB43F0NhQcB49ihPur_vYLsS4-GvrZ4o0WWbgQ7jtUUb3Y5lDgJTj7a7FMGtQHAmGmvGpqtAUtQLY5bcjC84zcLAZsDIYLsDZA3HyD0qvMy0QOmZy-G6ikHZ5os2jdqDLETLjteFT0ODuR2wO6olwaWYCmcLkSjeFkGR2eJP4MH3ljgYtgUt0Q5VQN34dkv2sKFYD5BxOr3M5mtD5jxgGAk\"," |
| 48 | + + "\"authzCode\":\"-xWGHBib3P6oGQVxx1neQMxHwiJnaX7vhdUV7GiBEXQ\",\"accessToken\":\"tY0x-AKE71CWesO9S28BoPgMTF1nFijHoFzm10YYL7U\"," |
| 49 | + + "\"refreshToken\":null,\"firstRefreshRollingToken\":null,\"effectiveScope\":[\"openid\",\"profile\"]," |
| 50 | + + "\"requestedScope\":[\"openid\",\"profile\"]," |
| 51 | + + "\"redirectUri\":\"https://localhost:2443/unitygw/oauth2ResponseConsumer\"," |
| 52 | + + "\"subject\":\"12a1197c-9c89-44b9-b889-740263cdb6b7\",\"clientName\":null," |
| 53 | + + "\"clientUsername\":\"oauth-client\",\"maxExtendedValidity\":0,\"tokenValidity\":3600," |
| 54 | + + "\"responseType\":\"code\",\"audience\":\"oauth-client\"," |
| 55 | + + "\"issuerUri\":\"https://localhost:2443/oauth2\",\"clientType\":\"CONFIDENTIAL\"," |
| 56 | + + "\"pkcsInfo\":{\"codeChallenge\":null,\"codeChallengeMethod\":null},\"clientId\":3}") |
| 57 | + .getBytes()); |
| 58 | + |
| 59 | + assertThat(token.getAudience().get(0), is("oauth-client")); |
| 60 | + } |
| 61 | +} |
0 commit comments