AuthPasswordSyntax*.java: Fixed copy/paste bug
2 files added
2 files modified
| | |
| | | // by one or more spaces or a dollar sign. |
| | | final StringBuilder scheme = new StringBuilder(); |
| | | pos = readScheme(authPasswordValue, scheme, pos); |
| | | // The scheme must consist of at least one character. |
| | | if (scheme.length() == 0) { |
| | | throw DecodeException.error(ERR_ATTR_SYNTAX_AUTHPW_NO_SCHEME.get()); |
| | | } |
| | |
| | | // printable characters other than the dollar sign and space character. |
| | | final StringBuilder authInfo = new StringBuilder(); |
| | | pos = readAuthInfo(authPasswordValue, authInfo, pos); |
| | | // The authInfo element must consist of at least one character. |
| | | if (scheme.length() == 0) { |
| | | if (authInfo.length() == 0) { |
| | | throw DecodeException.error(ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO.get()); |
| | | } |
| | | |
| | |
| | | // only printable characters other than the dollar sign and space character. |
| | | final StringBuilder authValue = new StringBuilder(); |
| | | pos = readAuthValue(authPasswordValue, length, pos, authValue); |
| | | // The authValue element must consist of at least one character. |
| | | if (scheme.length() == 0) { |
| | | if (authValue.length() == 0) { |
| | | throw DecodeException.error(ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE.get()); |
| | | } |
| | | |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt |
| | | * or http://forgerock.org/license/CDDLv1.0.html. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at legal-notices/CDDLv1_0.txt. |
| | | * If applicable, add the following below this CDDL HEADER, with the |
| | | * fields enclosed by brackets "[]" replaced with your own identifying |
| | | * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2015 ForgeRock AS |
| | | */ |
| | | package org.forgerock.opendj.ldap.schema; |
| | | |
| | | import static org.fest.assertions.Assertions.*; |
| | | |
| | | import org.forgerock.opendj.ldap.DecodeException; |
| | | import org.forgerock.testng.ForgeRockTestCase; |
| | | import org.testng.Assert; |
| | | import org.testng.annotations.DataProvider; |
| | | import org.testng.annotations.Test; |
| | | |
| | | /** Tests the AuthPasswordSyntax. */ |
| | | @SuppressWarnings("javadoc") |
| | | public class AuthPasswordSyntaxImplTest extends ForgeRockTestCase |
| | | { |
| | | @DataProvider |
| | | public Object[][] validEncodedPasswords() |
| | | { |
| | | return new Object[][] { |
| | | { "0$0$0", "0", "0", "0" }, |
| | | { " 0$0$0", "0", "0", "0" }, |
| | | { "0 $0$0", "0", "0", "0" }, |
| | | { "0$ 0$0", "0", "0", "0" }, |
| | | { "0$0 $0", "0", "0", "0" }, |
| | | { "0$0$ 0", "0", "0", "0" }, |
| | | { "0$0$0 ", "0", "0", "0" }, |
| | | }; |
| | | } |
| | | |
| | | @Test(dataProvider = "validEncodedPasswords") |
| | | public void decodeValidPassword(String encodedPassword, String expectedScheme, String expectedAuthInfo, |
| | | String expectedAuthValue) throws Exception |
| | | { |
| | | assertThat(AuthPasswordSyntaxImpl.decodeAuthPassword(encodedPassword)) |
| | | .isEqualTo(new String[] {expectedScheme, expectedAuthInfo, expectedAuthValue} ); |
| | | } |
| | | |
| | | @DataProvider |
| | | public Object[][] invalidEncodedPasswords() |
| | | { |
| | | return new Object[][] { |
| | | { "", "zero-length scheme element" }, |
| | | { "$", "zero-length scheme element" }, |
| | | { "0$$", "zero-length authInfo element" }, |
| | | { "0$0$", "zero-length authValue element" }, |
| | | { "a", "invalid scheme character" }, |
| | | { "0 #", "illegal character between the scheme and authInfo element" }, |
| | | { "0$0#", "invalid authInfo character" }, |
| | | { "0$0 #", "illegal character between the authInfo and authValue element" }, |
| | | { "0$0$\n", "invalid authValue character" }, |
| | | { "0$0$0$", "invalid trailing character" }, |
| | | }; |
| | | } |
| | | |
| | | @Test(dataProvider = "invalidEncodedPasswords") |
| | | public void decodeInvalidPassword(String encodedPassword , String errorMsg ) throws Exception |
| | | { |
| | | try |
| | | { |
| | | AuthPasswordSyntaxImpl.decodeAuthPassword(encodedPassword); |
| | | Assert.fail("Expected DirectoryException"); |
| | | } |
| | | catch (DecodeException e) |
| | | { |
| | | assertThat(e.getMessage()).contains(errorMsg); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * Decodes the provided authentication password value into its component |
| | | * parts. |
| | | * Decodes the provided authentication password value into its component parts. |
| | | * <p> |
| | | * FIXME this is a duplicate of {@link org.forgerock.opendj.ldap.schema.AuthPasswordSyntaxImplTest} |
| | | * |
| | | * @param authPasswordValue The authentication password value to be decoded. |
| | | * |
| | | * @return A three-element array, containing the scheme, authInfo, and |
| | | * authValue components of the given string, in that order. |
| | | * |
| | | * @throws DirectoryException If a problem is encountered while attempting |
| | | * to decode the value. |
| | | */ |
| | |
| | | |
| | | |
| | | // The authInfo element must consist of at least one character. |
| | | if (scheme.length() == 0) |
| | | if (authInfo.length() == 0) |
| | | { |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_INFO.get(); |
| | | throw new DirectoryException( |
| | |
| | | |
| | | |
| | | // The authValue element must consist of at least one character. |
| | | if (scheme.length() == 0) |
| | | if (authValue.length() == 0) |
| | | { |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_AUTHPW_NO_AUTH_VALUE.get(); |
| | | throw new DirectoryException( |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt |
| | | * or http://forgerock.org/license/CDDLv1.0.html. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at legal-notices/CDDLv1_0.txt. |
| | | * If applicable, add the following below this CDDL HEADER, with the |
| | | * fields enclosed by brackets "[]" replaced with your own identifying |
| | | * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2015 ForgeRock AS |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import static org.assertj.core.api.Assertions.*; |
| | | |
| | | import org.forgerock.testng.ForgeRockTestCase; |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.testng.annotations.DataProvider; |
| | | import org.testng.annotations.Test; |
| | | |
| | | /** Tests the AuthPasswordSyntax. */ |
| | | @SuppressWarnings("javadoc") |
| | | public class AuthPasswordSyntaxTest extends ForgeRockTestCase |
| | | { |
| | | @DataProvider |
| | | public Object[][] validEncodedPasswords() |
| | | { |
| | | return new Object[][] { |
| | | { "0$0$0", "0", "0", "0" }, |
| | | { " 0$0$0", "0", "0", "0" }, |
| | | { "0 $0$0", "0", "0", "0" }, |
| | | { "0$ 0$0", "0", "0", "0" }, |
| | | { "0$0 $0", "0", "0", "0" }, |
| | | { "0$0$ 0", "0", "0", "0" }, |
| | | { "0$0$0 ", "0", "0", "0" }, |
| | | }; |
| | | } |
| | | |
| | | @Test(dataProvider = "validEncodedPasswords") |
| | | public void decodeValidPassword(String encodedPassword, String expectedScheme, String expectedAuthInfo, |
| | | String expectedAuthValue) throws Exception |
| | | { |
| | | assertThat(AuthPasswordSyntax.decodeAuthPassword(encodedPassword)) |
| | | .isEqualTo(new String[] {expectedScheme, expectedAuthInfo, expectedAuthValue} ); |
| | | } |
| | | |
| | | @DataProvider |
| | | public Object[][] invalidEncodedPasswords() |
| | | { |
| | | return new Object[][] { |
| | | { "", "zero-length scheme element" }, |
| | | { "$", "zero-length scheme element" }, |
| | | { "0$$", "zero-length authInfo element" }, |
| | | { "0$0$", "zero-length authValue element" }, |
| | | { "a", "invalid scheme character" }, |
| | | { "0 #", "illegal character between the scheme and authInfo element" }, |
| | | { "0$0#", "invalid authInfo character" }, |
| | | { "0$0 #", "illegal character between the authInfo and authValue element" }, |
| | | { "0$0$\n", "invalid authValue character" }, |
| | | { "0$0$0$", "invalid trailing character" }, |
| | | }; |
| | | } |
| | | |
| | | @Test(dataProvider = "invalidEncodedPasswords") |
| | | public void decodeInvalidPassword(String encodedPassword , String errorMsg ) throws Exception |
| | | { |
| | | try |
| | | { |
| | | AuthPasswordSyntax.decodeAuthPassword(encodedPassword); |
| | | fail("Expected DirectoryException"); |
| | | } |
| | | catch (DirectoryException e) |
| | | { |
| | | assertThat(e.getMessage()).contains(errorMsg); |
| | | } |
| | | } |
| | | } |