You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oltu.apache.org by si...@apache.org on 2013/10/29 13:45:50 UTC
svn commit: r1536690 [2/2] - in /oltu/trunk: ./ commons/
commons/encodedtoken/ commons/encodedtoken/src/
commons/encodedtoken/src/main/ commons/encodedtoken/src/main/java/
commons/encodedtoken/src/main/java/org/
commons/encodedtoken/src/main/java/org/a...
Added: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderParser.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderParser.java?rev=1536690&view=auto
==============================================================================
--- oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderParser.java (added)
+++ oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderParser.java Tue Oct 29 12:45:49 2013
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.oltu.oauth2.jwt.io;
+
+import org.apache.oltu.commons.json.CustomizableEntityReader;
+import org.apache.oltu.oauth2.jwt.JWT;
+
+final class JWTHeaderParser extends CustomizableEntityReader<JWT, JWT.Builder> implements JWTConstants {
+
+ public JWTHeaderParser(JWT.Builder builder) {
+ super( builder );
+ }
+
+ @Override
+ protected <T> boolean handleProperty( String key, T value ) {
+ if (ALGORITHM.equals(key)) {
+ getBuilder().setHeaderAlgorithm(String.valueOf(value));
+ } else if (TYPE.equals(key)) {
+ getBuilder().setHeaderType(String.valueOf(value));
+ } else if (CONTENT_TYPE.equals(key)) {
+ getBuilder().setHeaderContentType(String.valueOf(value));
+ } else {
+ getBuilder().setHeaderCustomField(key, value);
+ }
+
+ return true;
+ }
+
+}
Propchange: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderParser.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderParser.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderParser.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderWriter.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderWriter.java?rev=1536690&view=auto
==============================================================================
--- oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderWriter.java (added)
+++ oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderWriter.java Tue Oct 29 12:45:49 2013
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.oltu.oauth2.jwt.io;
+
+import org.apache.oltu.commons.json.CustomizableEntityWriter;
+import org.apache.oltu.oauth2.jwt.Header;
+
+public final class JWTHeaderWriter extends CustomizableEntityWriter<Header> implements JWTConstants {
+
+ @Override
+ protected void handleProperties(Header header) {
+ set(ALGORITHM, header.getAlgorithm());
+ set(CONTENT_TYPE, header.getContentType());
+ set(TYPE, header.getType());
+ }
+
+}
Propchange: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderWriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderWriter.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTHeaderWriter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTReader.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTReader.java?rev=1536690&r1=1536689&r2=1536690&view=diff
==============================================================================
--- oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTReader.java (original)
+++ oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTReader.java Tue Oct 29 12:45:49 2013
@@ -16,210 +16,22 @@
*/
package org.apache.oltu.oauth2.jwt.io;
-import static java.lang.String.format;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
+import org.apache.oltu.commons.encodedtoken.TokenReader;
import org.apache.oltu.oauth2.jwt.JWT;
-import org.json.JSONTokener;
/**
* A {@link JWT} reader.
*/
-public final class JWTReader extends AbstractJWTIO {
-
- /**
- * The Base64 JSON string default separator.
- */
- private static final Pattern BASE64_JWT_PATTERN = Pattern.compile("([a-zA-Z0-9/+=]+)\\.([a-zA-Z0-9/+=]+)\\.(.+)");
-
- /**
- * Parses a Base64 encoded JSON Web Token.
- *
- * @param base64jsonString a Base64 encoded JSON Web Token.
- * @return a JWT instance.
- */
- public JWT read(String base64jsonString) {
- if (base64jsonString == null || base64jsonString.isEmpty()) {
- throw new IllegalArgumentException("Impossible to obtain a JWT from a null or empty string");
- }
-
- // TODO improve multi-line tokens
- StringBuilder buffer = new StringBuilder();
- BufferedReader reader = new BufferedReader(new StringReader(base64jsonString));
- String line = null;
- try {
- while ((line = reader.readLine()) != null) {
- buffer.append(line.trim());
- }
- } catch (IOException e) {
- // it cannot happen
- } finally {
- try {
- reader.close();
- } catch (IOException e) {
- // swallow it
- }
- }
-
- Matcher matcher = BASE64_JWT_PATTERN.matcher(buffer.toString());
- if (!matcher.matches()) {
- throw new IllegalArgumentException(base64jsonString
- + "is not a valid JSON Web Token, it does not match with the pattern: "
- + BASE64_JWT_PATTERN.pattern());
- }
-
- JWT.Builder jwtBuilder = new JWT.Builder(base64jsonString);
-
- // Header
- String header = matcher.group(1);
- String decodedHeader = decodeJSON(header);
- new JWTHeaderParser(jwtBuilder).parse(decodedHeader);
-
- // ClaimsSet
- String claimsSet = matcher.group(2);
- String decodedClaimsSet = decodeJSON(claimsSet);
- new JWTClaimsSetParser(jwtBuilder).parse(decodedClaimsSet);
-
- // Signature
- String signature = matcher.group(3);
-
- return jwtBuilder.setSignature(signature).build();
- }
-
- private String decodeJSON(String base64jsonString) {
- return new String(base64.decode(base64jsonString), UTF_8);
- }
-
- private static abstract class JSONParser {
-
- private final JWT.Builder jwtBuilder;
-
- public JSONParser(JWT.Builder jwtBuilder) {
- this.jwtBuilder = jwtBuilder;
- }
-
- protected final JWT.Builder getJwtBuilder() {
- return jwtBuilder;
- }
-
- public final void parse(String decodedHeader) {
- final JSONTokener x = new JSONTokener(decodedHeader);
- char c;
- String key;
-
- if (x.nextClean() != '{') {
- throw new IllegalArgumentException(format("String '%s' is not a valid JSON object representation, a JSON object text must begin with '{'",
- decodedHeader));
- }
- for (;;) {
- c = x.nextClean();
- switch (c) {
- case 0:
- throw new IllegalArgumentException(format("String '%s' is not a valid JSON object representation, a JSON object text must end with '}'",
- decodedHeader));
- case '}':
- return;
- default:
- x.back();
- key = x.nextValue().toString();
- }
-
- /*
- * The key is followed by ':'. We will also tolerate '=' or '=>'.
- */
- c = x.nextClean();
- if (c == '=') {
- if (x.next() != '>') {
- x.back();
- }
- } else if (c != ':') {
- throw new IllegalArgumentException(format("String '%s' is not a valid JSON object representation, expected a ':' after the key '%s'",
- decodedHeader, key));
- }
- Object value = x.nextValue();
-
- if (value != null) {
- on(key, value);
- }
-
- /*
- * Pairs are separated by ','. We will also tolerate ';'.
- */
- switch (x.nextClean()) {
- case ';':
- case ',':
- if (x.nextClean() == '}') {
- return;
- }
- x.back();
- break;
- case '}':
- return;
- default:
- throw new IllegalArgumentException("Expected a ',' or '}'");
- }
- }
- }
-
- protected abstract void on(String key, Object value);
-
- }
-
- private static final class JWTHeaderParser extends JSONParser {
-
- public JWTHeaderParser(JWT.Builder jwtBuilder) {
- super(jwtBuilder);
- }
-
- @Override
- protected void on(String key, Object value) {
- if (ALGORITHM.equals(key)) {
- getJwtBuilder().setHeaderAlgorithm(String.valueOf(value));
- } else if (TYPE.equals(key)) {
- getJwtBuilder().setHeaderType(String.valueOf(value));
- } else if (CONTENT_TYPE.equals(key)) {
- getJwtBuilder().setHeaderContentType(String.valueOf(value));
- } else {
- getJwtBuilder().setHeaderCustomField(key, String.valueOf(value));
- }
- }
-
- }
+public final class JWTReader extends TokenReader<JWT> {
- private static final class JWTClaimsSetParser extends JSONParser {
+ @Override
+ protected JWT build(String rawString, String decodedHeader, String decodedBody, String decodedSignature) {
+ JWT.Builder jwtBuilder = new JWT.Builder(rawString);
- public JWTClaimsSetParser(JWT.Builder jwtBuilder) {
- super(jwtBuilder);
- }
-
- @Override
- protected void on(String key, Object value) {
- if (AUDIENCE.equals(key)) {
- getJwtBuilder().setClaimsSetAudience(String.valueOf(value));
- } else if (EXPIRATION_TIME.equals(key)) {
- getJwtBuilder().setClaimsSetExpirationTime(((Integer) value).longValue());
- } else if (ISSUED_AT.equals(key)) {
- getJwtBuilder().setClaimsSetIssuedAt(((Integer) value).longValue());
- } else if (ISSUER.equals(key)) {
- getJwtBuilder().setClaimsSetIssuer(String.valueOf(value));
- } else if (JWT_ID.equals(key)) {
- getJwtBuilder().setClaimsSetJwdId(String.valueOf(value));
- } else if (NOT_BEFORE.equals(key)) {
- getJwtBuilder().setClaimsSetNotBefore(String.valueOf(value));
- } else if (SUBJECT.equals(key)) {
- getJwtBuilder().setClaimsSetSubject(String.valueOf(value));
- } else if (TYPE.equals(key)) {
- getJwtBuilder().setClaimsSetType(String.valueOf(value));
- } else {
- getJwtBuilder().setClaimsSetCustomField(key, String.valueOf(value));
- }
- }
+ new JWTHeaderParser(jwtBuilder).read(decodedHeader);
+ new JWTClaimsSetParser(jwtBuilder).read(decodedBody);
+ return jwtBuilder.setSignature(decodedSignature).build();
}
}
Modified: oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTWriter.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTWriter.java?rev=1536690&r1=1536689&r2=1536690&view=diff
==============================================================================
--- oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTWriter.java (original)
+++ oltu/trunk/oauth-2.0/jwt/src/main/java/org/apache/oltu/oauth2/jwt/io/JWTWriter.java Tue Oct 29 12:45:49 2013
@@ -16,117 +16,27 @@
*/
package org.apache.oltu.oauth2.jwt.io;
-import java.util.Map.Entry;
-
-import org.apache.oltu.oauth2.jwt.ClaimsSet;
-import org.apache.oltu.oauth2.jwt.Header;
+import org.apache.oltu.commons.encodedtoken.TokenWriter;
import org.apache.oltu.oauth2.jwt.JWT;
-import org.apache.oltu.oauth2.jwt.JWTEntity;
-import org.json.JSONStringer;
/**
* A {@link JWT} writer.
*/
-public final class JWTWriter extends AbstractJWTIO {
-
- public String write(JWT jwt) {
- if (jwt == null) {
- throw new IllegalArgumentException("Impossible to build a Token from a null JWT representation.");
- }
-
- String header = write(jwt.getHeader());
- String encodedHeader = encodeJson(header);
-
- String claimsSet = write(jwt.getClaimsSet());
- String encodedClaimsSet = encodeJson(claimsSet);
-
- String signature = jwt.getSignature();
- if (signature == null) {
- signature = "";
- }
-
- return new StringBuilder()
- .append(encodedHeader)
- .append('.')
- .append('\r')
- .append('\n')
- .append(encodedClaimsSet)
- .append('.')
- .append('\r')
- .append('\n')
- .append(signature)
- .toString();
- }
-
- /**
- * Serializes the input JWT Header to its correct JSON representation.
- *
- * @param header the JWT Header has to be serialized.
- * @return the JSON string that represents the JWT Header.
- */
- public String write(Header header) {
- if (header == null) {
- throw new IllegalArgumentException("Null JWT Header cannot be serialized to JSON representation.");
- }
-
- JSONStringer jsonWriter = new JSONStringer();
- jsonWriter.object();
-
- setObject(jsonWriter, ALGORITHM, header.getAlgorithm());
- setObject(jsonWriter, CONTENT_TYPE, header.getContentType());
- setObject(jsonWriter, TYPE, header.getType());
-
- return toJsonString(header, jsonWriter);
- }
-
- /**
- * Serializes the input JWT Claims Set to its correct JSON representation.
- *
- * @param claimsSet the JWT Claims Set has to be serialized.
- * @return the JSON string that represents the JWT Claims Set.
- */
- public String write(ClaimsSet claimsSet) {
- if (claimsSet == null) {
- throw new IllegalArgumentException("Null JWT Claims Set cannot be serialized to JSON representation.");
- }
-
- JSONStringer jsonWriter = new JSONStringer();
- jsonWriter.object();
-
- setObject(jsonWriter, AUDIENCE, claimsSet.getAudience());
- setObject(jsonWriter, ISSUER, claimsSet.getIssuer());
- setObject(jsonWriter, JWT_ID, claimsSet.getJwdId());
- setObject(jsonWriter, NOT_BEFORE, claimsSet.getNotBefore());
- setObject(jsonWriter, SUBJECT, claimsSet.getSubject());
- setObject(jsonWriter, TYPE, claimsSet.getType());
- setLong(jsonWriter, EXPIRATION_TIME, claimsSet.getExpirationTime());
- setLong(jsonWriter, ISSUED_AT, claimsSet.getIssuedAt());
-
- return toJsonString(claimsSet, jsonWriter);
- }
-
- private static String toJsonString(JWTEntity entity, JSONStringer jsonWriter) {
- for (Entry<String, Object> customField : entity.getCustomFields()) {
- setObject(jsonWriter, customField.getKey(), customField.getValue());
- }
-
- return jsonWriter.endObject().toString();
- }
+public final class JWTWriter extends TokenWriter<JWT> {
- private String encodeJson(String jsonString) {
- return new String(base64.encode(jsonString.getBytes(UTF_8)), UTF_8);
+ @Override
+ protected String writeHeader(JWT token) {
+ return new JWTHeaderWriter().write(token.getHeader());
}
- private static void setLong(JSONStringer jsonWriter, String key, long value) {
- if (value != 0) {
- jsonWriter.key(key).value(value);
- }
+ @Override
+ protected String writeBody(JWT token) {
+ return new JWTClaimsSetWriter().write(token.getClaimsSet());
}
- private static void setObject(JSONStringer jsonWriter, String key, Object value) {
- if (value != null) {
- jsonWriter.key(key).value(value);
- }
+ @Override
+ protected String writeSignature(JWT token) {
+ return token.getSignature();
}
}
Modified: oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/IOTestCaseConstants.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/IOTestCaseConstants.java?rev=1536690&r1=1536689&r2=1536690&view=diff
==============================================================================
--- oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/IOTestCaseConstants.java (original)
+++ oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/IOTestCaseConstants.java Tue Oct 29 12:45:49 2013
@@ -18,18 +18,20 @@ package org.apache.oltu.oauth2.jwt.io;
interface IOTestCaseConstants {
- public final String JWT = "eyJhbGciOiJSUzI1NiIsImtpZCI6ImJlMWRhMGIzNTY3YmQyNjVhMjUwOThmYmNjMmIwOWYyMTM0\r\n"
- + "NWIzYTIifQ\r\n"
- + ".\r\n"
- + "eyJhdWQiOiI3ODg3MzIzNzIwNzguYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJpc3MiOiJh\r\n"
- + "Y2NvdW50cy5nb29nbGUuY29tIiwic3ViIjoiMTA2NDIyNDUzMDgyNDc5OTk4NDI5IiwiZXhwIjox\r\n"
- + "MzY2NzMwMjE3LCJpYXQiOjEzNjY3MjYzMTcsImlkIjoiMTA2NDIyNDUzMDgyNDc5OTk4NDI5Iiwi\r\n"
- + "dmVyaWZpZWRfZW1haWwiOiJ0cnVlIiwiZW1haWxfdmVyaWZpZWQiOiJ0cnVlIiwiY2lkIjoiNzg4\r\n"
- + "NzMyMzcyMDc4LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXpwIjoiNzg4NzMyMzcyMDc4\r\n"
- + "LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiZW1haWwiOiJhbnRvbmlvLnNhbnNvQGdtYWls\r\n"
- + "LmNvbSIsInRva2VuX2hhc2giOiJMMkk3N2dpQkxrMFJTczB6UTFTdkNBIiwiYXRfaGFzaCI6Ikwy\r\n"
- + "STc3Z2lCTGswUlNzMHpRMVN2Q0EifQ\r\n"
- + ".\r\n"
- + "XWYi5Zj1YWAMGIml_ftoAwmvW1Y7oeybLCpzQrJVuWJpS8L8Vd2TL-RTIOEVG03VA7e0_-_frNuw7MxUgVEgh8G-Nnbk_baJ6k_3w5c1SKFamFiHHDoKLFhrt1Y8JKSuGwE02V-px4Cn0dRAQAc1IN5CU6wqCrYK0p-fv_fvy28";
+ public final String JWT = "eyJhbGciOiJSUzI1NiIsImtpZCI6ImJlMWRhMGIzNTY3YmQyNjVhMjUwOThmYmNjMmIwOWYyMTM0"
+ + "NWIzYTIifQ"
+ + "."
+ + "eyJhdWQiOiI3ODg3MzIzNzIwNzguYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJpc3MiOiJh"
+ + "Y2NvdW50cy5nb29nbGUuY29tIiwic3ViIjoiMTA2NDIyNDUzMDgyNDc5OTk4NDI5IiwiZXhwIjox"
+ + "MzY2NzMwMjE3LCJpYXQiOjEzNjY3MjYzMTcsImlkIjoiMTA2NDIyNDUzMDgyNDc5OTk4NDI5Iiwi"
+ + "dmVyaWZpZWRfZW1haWwiOiJ0cnVlIiwiZW1haWxfdmVyaWZpZWQiOiJ0cnVlIiwiY2lkIjoiNzg4"
+ + "NzMyMzcyMDc4LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXpwIjoiNzg4NzMyMzcyMDc4"
+ + "LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiZW1haWwiOiJhbnRvbmlvLnNhbnNvQGdtYWls"
+ + "LmNvbSIsInRva2VuX2hhc2giOiJMMkk3N2dpQkxrMFJTczB6UTFTdkNBIiwiYXRfaGFzaCI6Ikwy"
+ + "STc3Z2lCTGswUlNzMHpRMVN2Q0EifQ"
+ + "."
+ + "WFdZaTVaajFZV0FNR0ltbF9mdG9Bd212VzFZN29leWJMQ3B6UXJKVnVXSnBTOEw4VmQyVEwtUlRJ"
+ + "T0VWRzAzVkE3ZTBfLV9mck51dzdNeFVnVkVnaDhHLU5uYmtfYmFKNmtfM3c1YzFTS0ZhbUZpSEhE"
+ + "b0tMRmhydDFZOEpLU3VHd0UwMlYtcHg0Q24wZFJBUUFjMUlONUNVNndxQ3JZSzBwLWZ2X2Z2eTI4";
}
Modified: oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/JWTWriterTestCase.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/JWTWriterTestCase.java?rev=1536690&r1=1536689&r2=1536690&view=diff
==============================================================================
--- oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/JWTWriterTestCase.java (original)
+++ oltu/trunk/oauth-2.0/jwt/src/test/java/org/apache/oltu/oauth2/jwt/io/JWTWriterTestCase.java Tue Oct 29 12:45:49 2013
@@ -46,7 +46,7 @@ public final class JWTWriterTestCase imp
// signature
.setSignature("XWYi5Zj1YWAMGIml_ftoAwmvW1Y7oeybLCpzQrJVuWJpS8L8Vd2TL-RTIOEVG03VA7e0_-_frNuw7MxUgVEgh8G-Nnbk_baJ6k_3w5c1SKFamFiHHDoKLFhrt1Y8JKSuGwE02V-px4Cn0dRAQAc1IN5CU6wqCrYK0p-fv_fvy28")
.build();
- String encodedJWT = new JWTWriter().write(jwt);
+ String encodedJWT = new JWTWriter().write(jwt).replaceAll("\r?\n", "");;
assertEquals(JWT, encodedJWT);
}
Modified: oltu/trunk/pom.xml
URL: http://svn.apache.org/viewvc/oltu/trunk/pom.xml?rev=1536690&r1=1536689&r2=1536690&view=diff
==============================================================================
--- oltu/trunk/pom.xml (original)
+++ oltu/trunk/pom.xml Tue Oct 29 12:45:49 2013
@@ -33,6 +33,7 @@
<modules>
<module>parent</module>
+ <module>commons</module>
<module>oauth-2.0</module>
<module>openid-connect</module>
<module>jose</module>