Class GrouperMcpAdminSearchConfigsTest

java.lang.Object
junit.framework.Assert
junit.framework.TestCase
edu.internet2.middleware.grouper.testing.GrouperTestBase
edu.internet2.middleware.grouper.helper.GrouperTest
edu.internet2.middleware.grouper.ws.mcp.GrouperMcpAdminSearchConfigsTest
All Implemented Interfaces:
junit.framework.Test

public class GrouperMcpAdminSearchConfigsTest extends GrouperTest
unit tests for GrouperMcpAdminSearchConfigs (admin_config_search MCP tool). includes tests to verify that sensitive values (passwords, secrets, private keys) are masked and never returned in cleartext.
  • Field Summary

    Fields inherited from class edu.internet2.middleware.grouper.helper.GrouperTest

    testing

    Fields inherited from class edu.internet2.middleware.grouper.testing.GrouperTestBase

    G, NS
  • Constructor Summary

    Constructors
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    main(String[] args)
     
    protected void
     
    protected void
     
    void
    test that no config value in any search result contains cleartext passwords.
    void
    test that default searchType is lucene (not regex)
    void
    test lucene search masks passwords
    void
    test lucene search returns results
    void
    test lucene search includes metadata fields (configuredIn, defaultValue, etc.)
    void
    test lucene search with configFile filter
    void
    test that non-sensitive configs are returned in cleartext
    void
    test that password configs are masked and never returned in cleartext.
    void
    test that private key configs are masked
    void
    test that regex searchType still works (backward compatibility)
    void
    test basic config search returns results (regex mode)
    void
    test filtering by specific config file
    void
    test with invalid config file name
    void
    test with invalid regex when searchType is regex
    void
    test that missing searchRegex returns an error
    void
    test with null arguments
    void
    test that secret configs are masked
    void
    test the tool definition is well-formed

    Methods inherited from class edu.internet2.middleware.grouper.testing.GrouperTestBase

    assertContains, assertContains, assertContainsAttributeDef, assertContainsAttributeDefName, assertContainsGroup, assertContainsGroups, assertContainsStem, assertContainsStems, assertContainsString, assertContainsString, assertDoNotFindGroupByAttribute, assertDoNotFindGroupByName, assertDoNotFindGroupByName, assertDoNotFindGroupByType, assertDoNotFindGroupByType, assertDoNotFindStemByName, assertDoNotFindStemByName, assertEquals, assertEquals, assertEqualsMultiKey, assertEqualsMultiKey, assertEqualsObjectArrays, assertEqualsObjectArrays, assertFindField, assertFindGroupByAttribute, assertFindGroupByName, assertFindGroupByName, assertFindGroupByType, assertFindGroupByType, assertFindGroupType, assertFindStemByName, assertFindStemByName, assertGroupAttribute, assertGroupCreateSubject, assertGroupCreateTime, assertGroupDescription, assertGroupDisplayExtension, assertGroupDisplayName, assertGroupExtension, assertGroupHasAdmin, assertGroupHasGroupAttrRead, assertGroupHasGroupAttrUpdate, assertGroupHasMember, assertGroupHasMember, assertGroupHasOptin, assertGroupHasOptout, assertGroupHasRead, assertGroupHasType, assertGroupHasUpdate, assertGroupHasView, assertGroupName, assertGroupSetsAndOrder, assertGroupUuid, assertHasPrivilege, assertHasPrivilege, assertHasPrivilege, assertNotContainsAttributeDef, assertNotContainsAttributeDefName, assertNotContainsGroup, assertNotContainsStem, assertStemCreateSubject, assertStemCreateTime, assertStemDescription, assertStemDisplayExtension, assertStemDisplayName, assertStemExtension, assertStemHasCreate, assertStemHasStem, assertStemName, assertStemUuid, deleteGroupIfExists, deleteStemIfExists, filterOutBuiltInGroups, groupsString, printMemberships, stemsString, unexpectedException

    Methods inherited from class junit.framework.TestCase

    assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, getName, run, run, runBare, runTest, setName, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • GrouperMcpAdminSearchConfigsTest

      public GrouperMcpAdminSearchConfigsTest()
    • GrouperMcpAdminSearchConfigsTest

      public GrouperMcpAdminSearchConfigsTest(String name)
      Parameters:
      name -
  • Method Details

    • main

      public static void main(String[] args)
      Parameters:
      args -
    • setUp

      protected void setUp()
      Overrides:
      setUp in class GrouperTest
      See Also:
      • TestCase.setUp()
    • tearDown

      protected void tearDown()
      Overrides:
      tearDown in class GrouperTest
      See Also:
      • TestCase.tearDown()
    • testSearchConfigsBasic

      public void testSearchConfigsBasic()
      test basic config search returns results (regex mode)
    • testPasswordsAreMasked

      public void testPasswordsAreMasked()
      test that password configs are masked and never returned in cleartext. searches for configs with "pass" in the key name (which includes hibernate.connection.password) and verifies any with values are masked.
    • testSecretsAreMasked

      public void testSecretsAreMasked()
      test that secret configs are masked
    • testPrivateKeysAreMasked

      public void testPrivateKeysAreMasked()
      test that private key configs are masked
    • testNonSensitiveConfigsNotMasked

      public void testNonSensitiveConfigsNotMasked()
      test that non-sensitive configs are returned in cleartext
    • testSearchConfigsByFile

      public void testSearchConfigsByFile()
      test filtering by specific config file
    • testSearchConfigsInvalidConfigFile

      public void testSearchConfigsInvalidConfigFile()
      test with invalid config file name
    • testSearchConfigsInvalidRegex

      public void testSearchConfigsInvalidRegex()
      test with invalid regex when searchType is regex
    • testSearchConfigsMissingSearchRegex

      public void testSearchConfigsMissingSearchRegex()
      test that missing searchRegex returns an error
    • testSearchConfigsNullArguments

      public void testSearchConfigsNullArguments()
      test with null arguments
    • testBroadSearchNoPasswordLeakage

      public void testBroadSearchNoPasswordLeakage()
      test that no config value in any search result contains cleartext passwords. does a broad search and scans all returned values to ensure none contain obvious password patterns.
    • testToolDefinition

      public void testToolDefinition()
      test the tool definition is well-formed
    • testLuceneSearchBasic

      public void testLuceneSearchBasic()
      test lucene search returns results
    • testLucenePasswordsAreMasked

      public void testLucenePasswordsAreMasked()
      test lucene search masks passwords
    • testLuceneSearchWithConfigFileFilter

      public void testLuceneSearchWithConfigFileFilter()
      test lucene search with configFile filter
    • testLuceneSearchMetadata

      public void testLuceneSearchMetadata()
      test lucene search includes metadata fields (configuredIn, defaultValue, etc.)
    • testRegexSearchType

      public void testRegexSearchType()
      test that regex searchType still works (backward compatibility)
    • testDefaultSearchTypeIsLucene

      public void testDefaultSearchTypeIsLucene()
      test that default searchType is lucene (not regex)