testlens-app[bot] commented on PR #15987:
URL: https://github.com/apache/grails-core/pull/15987#issuecomment-4998150798

   ## 🚨 TestLens detected 1 failed test 🚨
   
   Here is what you can do:
   
   1) Inspect the test failures carefully.
   2) If you are convinced that some of the tests are flaky, you can mute them 
below.
   3) Finally, trigger a rerun by checking the rerun checkbox.
   
   ### Test Summary
   
   #### [CI / Spring Security Tests 
\(25\)](https://github.com/apache/grails-core/actions/runs/29546562151/job/87780120529?pr=15987)
 > :grails-test-examples-spring-security-ui-simple:integrationTest
   
   | Test | Runs | Flakiness |
   |---|---|--:|
   | DefaultSecurityInfoSpec > testConfig | ❌ | 0% 🟢 |
   
   🏷️ Commit: ebcf71697ef05b15882bcf2af4a5fd8513e04ada
   ▶️ Tests:  30879 executed
   🟡 Checks: 24/55 completed
   
   ### Test Failures
   
   <details>
   
   <summary><strong>DefaultSecurityInfoSpec > testConfig</strong> 
(:grails-test-examples-spring-security-ui-simple:integrationTest in <a 
href="https://github.com/apache/grails-core/actions/runs/29546562151/job/87780120529?pr=15987";>CI
 / Spring Security Tests (25)</a>)</summary>
   
   ```
   Condition failed with Exception:
   
   waitFor { pageSource.contains('Showing 1 to 10 of ') }
   |
   geb.waiting.WaitTimeoutException: condition did not pass in 30 seconds 
(failed with exception)
        at geb.waiting.Wait.waitFor(Wait.groovy:128)
        at 
geb.waiting.DefaultWaitingSupport.doWaitFor(DefaultWaitingSupport.groovy:55)
        at 
geb.waiting.DefaultWaitingSupport.waitFor(DefaultWaitingSupport.groovy:41)
        at geb.Page.waitFor(Page.groovy:120)
        at 
grails.plugin.geb.support.delegate.PageDelegate$Trait$Helper.waitFor(PageDelegate.groovy:350)
        at 
simple.spec.DefaultSecurityInfoSpec.testConfig(DefaultSecurityInfoSpec.groovy:44)
   Caused by: Assertion failed: 
    
   pageSource.contains('Showing 1 to 10 of ')
   |          |
   |          false
   '<html lang="en"><head>\n\t\t<meta charset="utf-8">\n\t\t<meta 
name="viewport" content="width=device-width, 
initial-scale=1">\n\t\t<title>Security Configuration</title>\n\t\t<link 
rel="shortcut icon" href="/assets/favicon.ico" type="image/x-icon">\n\t\t<link 
rel="stylesheet" href="/assets/main.css?compile=false">\n<link rel="stylesheet" 
href="/assets/webjars/bootstrap/5.3.8/dist/css/bootstrap.css?compile=false">\n<link
 rel="stylesheet" href="/assets/application.css?compile=false">\n\n\t\t\n\t\n   
 <meta name="layout" content="springSecurityUI">\n    
\n\n\n\t</head>\n\t<body>\n\t<nav class="navbar navbar-expand-lg 
bg-body-tertiary border-bottom">\n\t\t<div class="container-lg">\n\t\t\t<a 
class="navbar-brand" href="/">Home</a>\n\t\t\t<button class="navbar-toggler" 
type="button" data-bs-toggle="collapse" data-bs-target="#mainNav" 
aria-controls="mainNav" aria-expanded="false" aria-label="Toggle 
navigation">\n\t\t\t\t<span 
class="navbar-toggler-icon"></span>\n\t\t\t</button>\n\t\t\t<di
 v class="collapse navbar-collapse" id="mainNav">\n\t\t\t\t<ul 
class="navbar-nav me-auto">\n\t\t\t\t\t\n\t\t\t\t\t\n\t<li class="nav-item 
dropdown">\n                <a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Users</a>\n       
         <ul class="dropdown-menu">\n<li><a class="dropdown-item" 
href="/user/search">Search</a></li>\n<li><a class="dropdown-item" 
href="/user/create">Create</a></li>\n</ul>\n</li>\n\n\t<li class="nav-item 
dropdown">\n                <a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Roles</a>\n       
         <ul class="dropdown-menu">\n<li><a class="dropdown-item" 
href="/role/search">Search</a></li>\n<li><a class="dropdown-item" 
href="/role/create">Create</a></li>\n</ul>\n</li>\n\n\t<li class="nav-item 
dropdown">\n                <a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Reque
 stmaps</a>\n                <ul class="dropdown-menu">\n<li><a 
class="dropdown-item" href="/requestmap/search">Search</a></li>\n<li><a 
class="dropdown-item" 
href="/requestmap/create">Create</a></li>\n</ul>\n</li>\n\n\t\n\t<li 
class="nav-item dropdown">\n                <a class="nav-link dropdown-toggle" 
href="#" role="button" data-bs-toggle="dropdown" 
aria-expanded="false">Registration Code</a>\n                <ul 
class="dropdown-menu">\n<li><a class="dropdown-item" 
href="/registrationCode/search">Search</a></li>\n</ul>\n</li>\n\n\t\n\t\n\t<li 
class="nav-item dropdown">\n\t\t<a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Security 
Info</a>\n\t\t<ul class="dropdown-menu">\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/config">Security Configuration</a></li>\n\t\t\t<li><a 
class="dropdown-item" 
href="/securityInfo/mappings">Mappings</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/currentAuth">Current
  Authentication</a></li>\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/usercache">User Cache</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/filterChains">Filter 
Chains</a></li>\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/logoutHandlers">Logout Handlers</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/voters">Voters</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/providers">Authentication 
Providers</a></li>\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/secureChannel">Secure Channel 
Definition</a></li>\n\t\t</ul>\n\t</li>\n\n\t\t\t\t</ul>\n\t\t\t\t<ul 
class="navbar-nav ms-auto">\n\t\t\t\t\t\n\t<li class="nav-item d-flex 
align-items-center gap-2">\n\t\t\n\n\n\n\n\t<button type="button" 
id="loginLink" class="btn btn-primary btn-sm" data-bs-toggle="modal" 
data-bs-target="#loginModal">\n\t\tLog in\n\t</button>\n\t<div class="modal 
fade" id="loginModal" tabindex="-1" aria-labelledby="loginModalLabel" aria-hi
 dden="true">\n\t\t<div class="modal-dialog modal-dialog-centered">\n\t\t\t<div 
class="modal-content">\n\t\t\t\t<div class="modal-header">\n\t\t\t\t\t<h1 
class="modal-title fs-5" id="loginModalLabel">Member sign 
in</h1>\n\t\t\t\t\t<button type="button" class="btn-close" 
data-bs-dismiss="modal" 
aria-label="Cancel"></button>\n\t\t\t\t</div>\n\t\t\t\t<div 
class="modal-body">\n\t\t\t\t\t<form action="/login/authenticate" method="post" 
id="ajaxLoginForm" name="ajaxLoginForm" autocomplete="off">\n\t\t\t\t\t\t<div 
class="mb-3">\n\t\t\t\t\t\t\t<label class="form-label" 
for="ajaxUsername">Username:</label>\n\t\t\t\t\t\t\t<input type="text" 
class="form-control" name="username" id="ajaxUsername" 
autocapitalize="none">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div 
class="mb-3">\n\t\t\t\t\t\t\t<label class="form-label" 
for="ajaxPassword">Password:</label>\n\t\t\t\t\t\t\t<input type="password" 
class="form-control" name="password" 
id="ajaxPassword">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="mb-3 form-ch
 eck">\n\t\t\t\t\t\t\t<input type="checkbox" class="form-check-input" 
name="remember-me" id="remember_me" checked="checked">\n\t\t\t\t\t\t\t<label 
class="form-check-label" for="remember_me">Remember 
me</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button type="submit" class="btn 
btn-primary w-100">Log in</button>\n\t\t\t\t\t</form>\n\t\t\t\t\t<div 
id="loginMessage" class="mt-3"></div>\n\t\t\t\t\t<div class="d-flex 
justify-content-between mt-3 small">\n\t\t\t\t\t\t<a 
href="/register/forgotPassword">Forgot password?</a>\n\t\t\t\t\t\t<a 
href="/register/register">Register as new 
User</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t\n\n\n\t</li>\n\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\n\t</nav>\n\t<div
 class="container-lg py-4">\n\t\t\n\t\t\n\n\n\n<div class="table-responsive">\n 
   <table id="config" class="table table-striped table-hover align-middle">\n   
     <caption class="caption-top">Security Configuration</caption>\n        
<thead>\n        <tr>\n     
        <th scope="col">Name</th>\n            <th scope="col">Value</th>\n     
   </tr>\n        </thead>\n        <tbody>\n        \n            \n           
 <tr>\n                <td>active</td>\n                <td>true</td>\n         
   </tr>\n        \n            \n            <tr>\n                
<td>adh.ajaxErrorPage</td>\n                <td>/login/ajaxDenied</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>adh.errorPage</td>\n                <td>/login/denied</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>adh.useForward</td>\n                <td>true</td>\n            </tr>\n     
   \n            \n            <tr>\n                
<td>afterInvocationManagerProviderNames</td>\n                <td>[]</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>ajaxCheckClosure</td>\n                <td></td>\n            </tr>\n       
 \n            \n            <tr>\n
                 <td>ajaxHeader</td>\n                
<td>X-Requested-With</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>anon.key</td>\n                <td>foo</td>\n       
     </tr>\n        \n            \n            <tr>\n                
<td>apf.allowSessionCreation</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>apf.continueChainBeforeSuccessfulAuthentication</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>apf.filterProcessesUrl</td>\n                
<td>/login/authenticate</td>\n            </tr>\n        \n            \n       
     <tr>\n                <td>apf.passwordParameter</td>\n                
<td>password</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>apf.postOnly</td>\n                <td>true</td>\n    
        </tr>\n        \n            \n       
      <tr>\n                <td>apf.storeLastUsername</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>apf.usernameParameter</td>\n                
<td>username</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>atr.anonymousClass</td>\n                <td>grails. 
plugin. springsecurity. authentication. 
GrailsAnonymousAuthenticationToken</td>\n            </tr>\n        \n          
  \n            <tr>\n                <td>atr.rememberMeClass</td>\n            
    <td>org. springframework. security. authentication. 
RememberMeAuthenticationToken</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>auth.ajaxLoginFormUrl</td>\n               
 <td>/login/authAjax</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>auth.forceHttps</td>\n                
<td>false</td>\n            </tr>\n        \n            \n       
      <tr>\n                <td>auth.loginFormUrl</td>\n                
<td>/login/auth</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>auth.useForward</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>authority.className</td>\n                <td>test.Role</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>authority.groupAuthorityNameField</td>\n                <td></td>\n         
   </tr>\n        \n            \n            <tr>\n                
<td>authority.nameField</td>\n                <td>authority</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>basic.credentialsCharset</td>\n                <td>UTF-8</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>basic.realmName</td>\n                <td>Grails Realm</td>\n            
</tr>\n        \n            \n      
       <tr>\n                <td>beanTypeResolverClass</td>\n                
<td>grails. plugin. springsecurity. BeanTypeResolver</td>\n            </tr>\n  
      \n            \n            <tr>\n                <td>cacheUsers</td>\n   
             <td>true</td>\n            </tr>\n        \n            \n         
   <tr>\n                <td>controllerAnnotations.staticRules</td>\n           
     <td>[]</td>\n            </tr>\n        \n            \n            <tr>\n 
               <td>dao.hideUserNotFoundExceptions</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>dao.reflectionSaltSourceProperty</td>\n                
<td></td>\n            </tr>\n        \n            \n            <tr>\n        
        <td>debug.useFilter</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>digest.createAuthenticatedToken</td>\n                <td>false</td>\n 
            </tr>\n        \n            \n            <tr>\n                
<td>digest.key</td>\n                <td>changeme</td>\n            </tr>\n     
   \n            \n            <tr>\n                
<td>digest.nonceValiditySeconds</td>\n                <td>300</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>digest.passwordAlreadyEncoded</td>\n                <td>false</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>digest.realmName</td>\n                <td>Grails Realm</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>digest.useCleartextPasswords</td>\n                <td>false</td>\n         
   </tr>\n        \n            \n            <tr>\n                
<td>failureHandler.ajaxAuthFailUrl</td>\n                
<td>/login/authfail?ajax=true</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>failureHandler.allowSessionCr
 eation</td>\n                <td>true</td>\n            </tr>\n        \n      
      \n            <tr>\n                
<td>failureHandler.defaultFailureUrl</td>\n                
<td>/login/authfail?login_error=1</td>\n            </tr>\n        \n           
 \n            <tr>\n                
<td>failureHandler.exceptionMappings</td>\n                <td>[]</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>failureHandler.useForward</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>fii.alwaysReauthenticate</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>fii.observeOncePerRequest</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>fii.publishAuthorizationSuccess</td>\n                <td>false</td>\n      
      </tr>\n        \n            \n 
            <tr>\n                <td>fii.rejectPublicInvocations</td>\n        
        <td>true</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>fii.validateConfigAttributes</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>filterChain.chainMap</td>\n                
<td>[{pattern=/assets/**, filters=none}, {pattern=/**/favicon.ico, 
filters=none}, {pattern=/**/css/**, filters=none}, {pattern=/**/images/**, 
filters=none}, {pattern=/**/js/**, filters=none}, {pattern=/**, 
filters=JOINED_FILTERS}]</td>\n            </tr>\n        \n            \n      
      <tr>\n                <td>filterChain.chainMap[0].filters</td>\n          
      <td>none</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[0].pattern</td>\n                
<td>/assets/**</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>
 filterChain.chainMap[1].filters</td>\n                <td>none</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>filterChain.chainMap[1].pattern</td>\n                
<td>/**/favicon.ico</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>filterChain.chainMap[2].filters</td>\n               
 <td>none</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>filterChain.chainMap[2].pattern</td>\n                
<td>/**/css/**</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[3].filters</td>\n                
<td>none</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>filterChain.chainMap[3].pattern</td>\n                
<td>/**/images/**</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[4].filters</td>\n                
<td>none</td>\n  
           </tr>\n        \n            \n            <tr>\n                
<td>filterChain.chainMap[4].pattern</td>\n                <td>/**/js/**</td>\n  
          </tr>\n        \n            \n            <tr>\n                
<td>filterChain.chainMap[5].filters</td>\n                
<td>JOINED_FILTERS</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[5].pattern</td>\n                
<td>/**</td>\n            </tr>\n        \n            \n            <tr>\n     
           <td>gsp.layoutAuth</td>\n                <td>main</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>gsp.layoutDenied</td>\n                <td>main</td>\n            </tr>\n   
     \n            \n            <tr>\n                
<td>interceptUrlMap</td>\n                <td>[]</td>\n            </tr>\n      
  \n            \n            <tr>\n                <td>ipRestrictions</td>\n   
             <td>[]</td>\n    
         </tr>\n        \n            \n            <tr>\n                
<td>logout.afterLogoutUrl</td>\n                <td>/</td>\n            </tr>\n 
       \n            \n            <tr>\n                
<td>logout.alwaysUseDefaultTargetUrl</td>\n                <td>false</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>logout.clearAuthentication</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>logout.filterProcessesUrl</td>\n                <td>/logoff</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>logout.handlerNames</td>\n                <td>[]</td>\n            </tr>\n  
      \n            \n            <tr>\n                
<td>logout.invalidateHttpSession</td>\n                <td>true</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>logout.postOnly</td>\n                <td>true</td>\n   
          </tr>\n        \n            \n            <tr>\n                
<td>logout.redirectToReferer</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>logout.targetUrlParameter</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>password.algorithm</td>\n                <td>bcrypt</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>password.bcrypt.logrounds</td>\n                <td>4</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>password.encodeHashAsBase64</td>\n                <td>false</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>password.hash.iterations</td>\n                <td>1</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>portMapper.httpPort</td>\n                <td>8080</td>\n           
  </tr>\n        \n            \n            <tr>\n                
<td>portMapper.httpsPort</td>\n                <td>8443</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>printStatusMessages</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>providerManager.eraseCredentialsAfterAuthentication</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>providerNames</td>\n                <td>[]</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>redirectStrategy.contextRelative</td>\n                <td>false</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>registerLoggerListener</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rejectIfNoRule</td>\n                <td>true</td>\n    
         </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.alwaysRemember</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rememberMe.cookieDomain</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rememberMe.cookieName</td>\n                <td>grails_remember_me</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.createSessionOnSuccess</td>\n                <td>true</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.key</td>\n                <td>grailsRocks</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rememberMe.parameter</td>\n                <td>remember-me</td>\n           
 </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.persistent</td>\n                <
 td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>rememberMe.persistentToken.domainClassName</td>\n              
  <td>test.PersistentToken</td>\n            </tr>\n        \n            \n    
        <tr>\n                
<td>rememberMe.persistentToken.seriesLength</td>\n                <td>16</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.persistentToken.tokenLength</td>\n                <td>16</td>\n  
          </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.tokenValiditySeconds</td>\n                <td>1209600</td>\n    
        </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.useSecureCookie</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>requestCache.createSession</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            
 <tr>\n                <td>requestMap.className</td>\n                
<td>test.Requestmap</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>requestMap.configAttributeField</td>\n               
 <td>configAttribute</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>requestMap.httpMethodField</td>\n                
<td>httpMethod</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>requestMap.urlField</td>\n                
<td>url</td>\n            </tr>\n        \n            \n            <tr>\n     
           <td>roleHierarchy</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>sch.strategyName</td>\n                <td>MODE_THREADLOCAL</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>scpf.forceEagerSessionCreation</td>\n                <td>false</td>\n       
     </tr>\n        \
 n            \n            <tr>\n                
<td>scr.allowSessionCreation</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>scr.disableUrlRewriting</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>scr.springSecurityContextKey</td>\n                
<td>SPRING_SECURITY_CONTEXT</td>\n            </tr>\n        \n            \n   
         <tr>\n                <td>secureChannel.definition</td>\n              
  <td>[{pattern=/testsecure/**, access=REQUIRES_SECURE_CHANNEL}, 
{pattern=/testinsecure/**, access=REQUIRES_INSECURE_CHANNEL}, 
{pattern=/testany/**, access=ANY_CHANNEL}]</td>\n            </tr>\n        \n  
          \n            <tr>\n                
<td>secureChannel.definition[0].access</td>\n                
<td>REQUIRES_SECURE_CHANNEL</td>\n            </tr>\n        \n            \n   
         <tr>\n                <td>secureChannel.defin
 ition[0].pattern</td>\n                <td>/testsecure/**</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>secureChannel.definition[1].access</td>\n                
<td>REQUIRES_INSECURE_CHANNEL</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>secureChannel.definition[1].pattern</td>\n 
               <td>/testinsecure/**</td>\n            </tr>\n        \n         
   \n            <tr>\n                
<td>secureChannel.definition[2].access</td>\n                
<td>ANY_CHANNEL</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>secureChannel.definition[2].pattern</td>\n            
    <td>/testany/**</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>secureChannel.insecureConfigAttributeKeyword</td>\n  
              <td>REQUIRES_INSECURE_CHANNEL</td>\n            </tr>\n        \n 
           \n            <tr>\n                <td>secureC
 hannel.insecureHeaderName</td>\n                <td>X-Forwarded-Proto</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>secureChannel.insecureHeaderValue</td>\n                <td>https</td>\n    
        </tr>\n        \n            \n            <tr>\n                
<td>secureChannel.secureConfigAttributeKeyword</td>\n                
<td>REQUIRES_SECURE_CHANNEL</td>\n            </tr>\n        \n            \n   
         <tr>\n                <td>secureChannel.secureHeaderName</td>\n        
        <td>X-Forwarded-Proto</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>secureChannel.secureHeaderValue</td>\n     
           <td>http</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>secureChannel.useHeaderCheckChannelSecurity</td>\n   
             <td>false</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>securityConfigType</td>\n       
          <td>Requestmap</td>\n            </tr>\n        \n            \n      
      <tr>\n                
<td>sessionFixationPrevention.alwaysCreateSession</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>sessionFixationPrevention.migrate</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>successHandler.ajaxSuccessUrl</td>\n                
<td>/login/ajaxSuccess</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>successHandler.alwaysUseDefault</td>\n            
    <td>false</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>successHandler.defaultTargetUrl</td>\n                
<td>/</td>\n            </tr>\n        \n            \n            <tr>\n       
         <td>successHandler.targetUrlParameter</td>\n                
<td>spring-security-redirect</td>\n            </tr>\
 n        \n            \n            <tr>\n                
<td>successHandler.useReferer</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>switchUser.exitUserUrl</td>\n                <td>/logout/impersonate</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>switchUser.switchFailureUrl</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>switchUser.switchUserUrl</td>\n                
<td>/login/impersonate</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>switchUser.targetUrl</td>\n                
<td></td>\n            </tr>\n        \n            \n            <tr>\n        
        <td>switchUser.usernameParameter</td>\n                
<td>username</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.encodePassword</td>\n                <td>fals
 e</td>\n            </tr>\n        \n            \n            <tr>\n          
      <td>ui.forgotPassword.emailFrom</td>\n                <td>Do Not Reply 
&lt;do.not.reply@localhost&gt;</td>\n            </tr>\n        \n            
\n            <tr>\n                <td>ui.forgotPassword.postResetUrl</td>\n   
             <td></td>\n            </tr>\n        \n            \n            
<tr>\n                
<td>ui.forgotPassword.requireForgotPassEmailValidation</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>ui.forgotPassword.validationUserLookUpProperty</td>\n           
     <td>user</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.gsp.layoutRegister</td>\n                
<td>register</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.gsp.layoutUi</td>\n                
<td>springSecurityUI</td>\n            </tr>\n        \n      
       \n            <tr>\n                
<td>ui.register.defaultRoleNames</td>\n                <td>[ROLE_USER]</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>ui.register.emailFrom</td>\n                <td>Do Not Reply 
&lt;do.not.reply@localhost&gt;</td>\n            </tr>\n        \n            
\n            <tr>\n                <td>ui.register.postRegisterUrl</td>\n      
          <td></td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.register.requireEmailValidation</td>\n             
   <td>true</td>\n            </tr>\n        \n            \n            <tr>\n 
               <td>ui.switchUserRoleName</td>\n                
<td>ROLE_SWITCH_USER</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>useBasicAuth</td>\n                <td>false</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>useDigestAuth</td>\n                <td
 >false</td>\n            </tr>\n        \n            \n            <tr>\n     
 >           <td>useExternalClasses</td>\n                <td>false</td>\n      
 >      </tr>\n        \n            \n            <tr>\n                
 ><td>useHttpSessionEventPublisher</td>\n                <td>false</td>\n       
 >     </tr>\n        \n            \n            <tr>\n                
 ><td>useRoleGroups</td>\n                <td>false</td>\n            </tr>\n   
 >     \n            \n            <tr>\n                
 ><td>useSecurityEventListener</td>\n                <td>false</td>\n           
 > </tr>\n        \n            \n            <tr>\n                
 ><td>useSessionFixationPrevention</td>\n                <td>true</td>\n        
 >    </tr>\n        \n            \n            <tr>\n                
 ><td>useSwitchUserFilter</td>\n                <td>true</td>\n            
 ></tr>\n        \n            \n            <tr>\n                
 ><td>useX509</td>\n                <td>false</td>\n         
    </tr>\n        \n            \n            <tr>\n                
<td>userLookup.accountExpiredPropertyName</td>\n                
<td>accountExpired</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>userLookup.accountLockedPropertyName</td>\n           
     <td>accountLocked</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>userLookup.authoritiesPropertyName</td>\n         
       <td>authorities</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>userLookup.authorityJoinClassName</td>\n          
      <td>test.UserRole</td>\n            </tr>\n        \n            \n       
     <tr>\n                <td>userLookup.enabledPropertyName</td>\n            
    <td>enabled</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>userLookup.passwordExpiredPropertyName</td>\n         
       <td>passwordExpired</td>\n            </tr>\n        \n      
       \n            <tr>\n                
<td>userLookup.passwordPropertyName</td>\n                <td>password</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>userLookup.userDomainClassName</td>\n                <td>test.User</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>userLookup.usernameIgnoreCase</td>\n                <td>false</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>userLookup.usernamePropertyName</td>\n                <td>username</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>voterNames</td>\n                <td>[]</td>\n            </tr>\n        \n 
           \n            <tr>\n                
<td>x509.checkForPrincipalChanges</td>\n                <td>false</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>x509.continueFilterChainOnUnsuccessfulAuthentication</td>\n     
            <td>true</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>x509.invalidateSessionOnPrincipalChange</td>\n      
          <td>true</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>x509.subjectDnClosure</td>\n                
<td></td>\n            </tr>\n        \n            \n            <tr>\n        
        <td>x509.subjectDnRegex</td>\n                
<td>CN=(.*?)(?:,|$)</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>x509.throwExceptionWhenTokenRejected</td>\n          
      <td>false</td>\n            </tr>\n        \n        </tbody>\n    
</table>\n</div>\n\n<script type="text/javascript" 
src="/assets/spring-security-ui-ajaxLogin.js?compile=false"></script>\n<script 
type="text/javascript" 
src="/assets/spring-security-ui.js?compile=false"></script>\n\n<script>\nvar 
loggingYouIn = "Logging you in ...";\n\t</script>\n\n\t</div>\n\t<script 
type="text/javascr
 ipt" 
src="/assets/webjars/jquery/4.0.0/dist/jquery.js?compile=false"></script>\n<script
 type="text/javascript" 
src="/assets/webjars/bootstrap/5.3.8/dist/js/bootstrap.bundle.js?compile=false"></script>\n<script
 type="text/javascript" 
src="/assets/application.js?compile=false"></script>\n\n\t\n\n\n</body></html>'
    
        at 
simple.spec.DefaultSecurityInfoSpec.testConfig_closure2(DefaultSecurityInfoSpec.groovy:44)
        at geb.waiting.Wait.waitFor(Wait.groovy:117)
        ... 5 more
   
        at 
simple.spec.DefaultSecurityInfoSpec.testConfig(DefaultSecurityInfoSpec.groovy:44)
   Caused by: geb.waiting.WaitTimeoutException: condition did not pass in 30 
seconds (failed with exception)
        at geb.waiting.Wait.waitFor(Wait.groovy:128)
        at 
geb.waiting.DefaultWaitingSupport.doWaitFor(DefaultWaitingSupport.groovy:55)
        at 
geb.waiting.DefaultWaitingSupport.waitFor(DefaultWaitingSupport.groovy:41)
        at geb.Page.waitFor(Page.groovy:120)
        at 
grails.plugin.geb.support.delegate.PageDelegate$Trait$Helper.waitFor(PageDelegate.groovy:350)
        ... 1 more
   Caused by: Assertion failed: 
   
   pageSource.contains('Showing 1 to 10 of ')
   |          |
   |          false
   '<html lang="en"><head>\n\t\t<meta charset="utf-8">\n\t\t<meta 
name="viewport" content="width=device-width, 
initial-scale=1">\n\t\t<title>Security Configuration</title>\n\t\t<link 
rel="shortcut icon" href="/assets/favicon.ico" type="image/x-icon">\n\t\t<link 
rel="stylesheet" href="/assets/main.css?compile=false">\n<link rel="stylesheet" 
href="/assets/webjars/bootstrap/5.3.8/dist/css/bootstrap.css?compile=false">\n<link
 rel="stylesheet" href="/assets/application.css?compile=false">\n\n\t\t\n\t\n   
 <meta name="layout" content="springSecurityUI">\n    
\n\n\n\t</head>\n\t<body>\n\t<nav class="navbar navbar-expand-lg 
bg-body-tertiary border-bottom">\n\t\t<div class="container-lg">\n\t\t\t<a 
class="navbar-brand" href="/">Home</a>\n\t\t\t<button class="navbar-toggler" 
type="button" data-bs-toggle="collapse" data-bs-target="#mainNav" 
aria-controls="mainNav" aria-expanded="false" aria-label="Toggle 
navigation">\n\t\t\t\t<span 
class="navbar-toggler-icon"></span>\n\t\t\t</button>\n\t\t\t<di
 v class="collapse navbar-collapse" id="mainNav">\n\t\t\t\t<ul 
class="navbar-nav me-auto">\n\t\t\t\t\t\n\t\t\t\t\t\n\t<li class="nav-item 
dropdown">\n                <a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Users</a>\n       
         <ul class="dropdown-menu">\n<li><a class="dropdown-item" 
href="/user/search">Search</a></li>\n<li><a class="dropdown-item" 
href="/user/create">Create</a></li>\n</ul>\n</li>\n\n\t<li class="nav-item 
dropdown">\n                <a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Roles</a>\n       
         <ul class="dropdown-menu">\n<li><a class="dropdown-item" 
href="/role/search">Search</a></li>\n<li><a class="dropdown-item" 
href="/role/create">Create</a></li>\n</ul>\n</li>\n\n\t<li class="nav-item 
dropdown">\n                <a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Reque
 stmaps</a>\n                <ul class="dropdown-menu">\n<li><a 
class="dropdown-item" href="/requestmap/search">Search</a></li>\n<li><a 
class="dropdown-item" 
href="/requestmap/create">Create</a></li>\n</ul>\n</li>\n\n\t\n\t<li 
class="nav-item dropdown">\n                <a class="nav-link dropdown-toggle" 
href="#" role="button" data-bs-toggle="dropdown" 
aria-expanded="false">Registration Code</a>\n                <ul 
class="dropdown-menu">\n<li><a class="dropdown-item" 
href="/registrationCode/search">Search</a></li>\n</ul>\n</li>\n\n\t\n\t\n\t<li 
class="nav-item dropdown">\n\t\t<a class="nav-link dropdown-toggle" href="#" 
role="button" data-bs-toggle="dropdown" aria-expanded="false">Security 
Info</a>\n\t\t<ul class="dropdown-menu">\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/config">Security Configuration</a></li>\n\t\t\t<li><a 
class="dropdown-item" 
href="/securityInfo/mappings">Mappings</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/currentAuth">Current
  Authentication</a></li>\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/usercache">User Cache</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/filterChains">Filter 
Chains</a></li>\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/logoutHandlers">Logout Handlers</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/voters">Voters</a></li>\n\t\t\t<li><a 
class="dropdown-item" href="/securityInfo/providers">Authentication 
Providers</a></li>\n\t\t\t<li><a class="dropdown-item" 
href="/securityInfo/secureChannel">Secure Channel 
Definition</a></li>\n\t\t</ul>\n\t</li>\n\n\t\t\t\t</ul>\n\t\t\t\t<ul 
class="navbar-nav ms-auto">\n\t\t\t\t\t\n\t<li class="nav-item d-flex 
align-items-center gap-2">\n\t\t\n\n\n\n\n\t<button type="button" 
id="loginLink" class="btn btn-primary btn-sm" data-bs-toggle="modal" 
data-bs-target="#loginModal">\n\t\tLog in\n\t</button>\n\t<div class="modal 
fade" id="loginModal" tabindex="-1" aria-labelledby="loginModalLabel" aria-hi
 dden="true">\n\t\t<div class="modal-dialog modal-dialog-centered">\n\t\t\t<div 
class="modal-content">\n\t\t\t\t<div class="modal-header">\n\t\t\t\t\t<h1 
class="modal-title fs-5" id="loginModalLabel">Member sign 
in</h1>\n\t\t\t\t\t<button type="button" class="btn-close" 
data-bs-dismiss="modal" 
aria-label="Cancel"></button>\n\t\t\t\t</div>\n\t\t\t\t<div 
class="modal-body">\n\t\t\t\t\t<form action="/login/authenticate" method="post" 
id="ajaxLoginForm" name="ajaxLoginForm" autocomplete="off">\n\t\t\t\t\t\t<div 
class="mb-3">\n\t\t\t\t\t\t\t<label class="form-label" 
for="ajaxUsername">Username:</label>\n\t\t\t\t\t\t\t<input type="text" 
class="form-control" name="username" id="ajaxUsername" 
autocapitalize="none">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div 
class="mb-3">\n\t\t\t\t\t\t\t<label class="form-label" 
for="ajaxPassword">Password:</label>\n\t\t\t\t\t\t\t<input type="password" 
class="form-control" name="password" 
id="ajaxPassword">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="mb-3 form-ch
 eck">\n\t\t\t\t\t\t\t<input type="checkbox" class="form-check-input" 
name="remember-me" id="remember_me" checked="checked">\n\t\t\t\t\t\t\t<label 
class="form-check-label" for="remember_me">Remember 
me</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button type="submit" class="btn 
btn-primary w-100">Log in</button>\n\t\t\t\t\t</form>\n\t\t\t\t\t<div 
id="loginMessage" class="mt-3"></div>\n\t\t\t\t\t<div class="d-flex 
justify-content-between mt-3 small">\n\t\t\t\t\t\t<a 
href="/register/forgotPassword">Forgot password?</a>\n\t\t\t\t\t\t<a 
href="/register/register">Register as new 
User</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t\n\n\n\t</li>\n\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\n\t</nav>\n\t<div
 class="container-lg py-4">\n\t\t\n\t\t\n\n\n\n<div class="table-responsive">\n 
   <table id="config" class="table table-striped table-hover align-middle">\n   
     <caption class="caption-top">Security Configuration</caption>\n        
<thead>\n        <tr>\n     
        <th scope="col">Name</th>\n            <th scope="col">Value</th>\n     
   </tr>\n        </thead>\n        <tbody>\n        \n            \n           
 <tr>\n                <td>active</td>\n                <td>true</td>\n         
   </tr>\n        \n            \n            <tr>\n                
<td>adh.ajaxErrorPage</td>\n                <td>/login/ajaxDenied</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>adh.errorPage</td>\n                <td>/login/denied</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>adh.useForward</td>\n                <td>true</td>\n            </tr>\n     
   \n            \n            <tr>\n                
<td>afterInvocationManagerProviderNames</td>\n                <td>[]</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>ajaxCheckClosure</td>\n                <td></td>\n            </tr>\n       
 \n            \n            <tr>\n
                 <td>ajaxHeader</td>\n                
<td>X-Requested-With</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>anon.key</td>\n                <td>foo</td>\n       
     </tr>\n        \n            \n            <tr>\n                
<td>apf.allowSessionCreation</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>apf.continueChainBeforeSuccessfulAuthentication</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>apf.filterProcessesUrl</td>\n                
<td>/login/authenticate</td>\n            </tr>\n        \n            \n       
     <tr>\n                <td>apf.passwordParameter</td>\n                
<td>password</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>apf.postOnly</td>\n                <td>true</td>\n    
        </tr>\n        \n            \n       
      <tr>\n                <td>apf.storeLastUsername</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>apf.usernameParameter</td>\n                
<td>username</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>atr.anonymousClass</td>\n                <td>grails. 
plugin. springsecurity. authentication. 
GrailsAnonymousAuthenticationToken</td>\n            </tr>\n        \n          
  \n            <tr>\n                <td>atr.rememberMeClass</td>\n            
    <td>org. springframework. security. authentication. 
RememberMeAuthenticationToken</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>auth.ajaxLoginFormUrl</td>\n               
 <td>/login/authAjax</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>auth.forceHttps</td>\n                
<td>false</td>\n            </tr>\n        \n            \n       
      <tr>\n                <td>auth.loginFormUrl</td>\n                
<td>/login/auth</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>auth.useForward</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>authority.className</td>\n                <td>test.Role</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>authority.groupAuthorityNameField</td>\n                <td></td>\n         
   </tr>\n        \n            \n            <tr>\n                
<td>authority.nameField</td>\n                <td>authority</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>basic.credentialsCharset</td>\n                <td>UTF-8</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>basic.realmName</td>\n                <td>Grails Realm</td>\n            
</tr>\n        \n            \n      
       <tr>\n                <td>beanTypeResolverClass</td>\n                
<td>grails. plugin. springsecurity. BeanTypeResolver</td>\n            </tr>\n  
      \n            \n            <tr>\n                <td>cacheUsers</td>\n   
             <td>true</td>\n            </tr>\n        \n            \n         
   <tr>\n                <td>controllerAnnotations.staticRules</td>\n           
     <td>[]</td>\n            </tr>\n        \n            \n            <tr>\n 
               <td>dao.hideUserNotFoundExceptions</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>dao.reflectionSaltSourceProperty</td>\n                
<td></td>\n            </tr>\n        \n            \n            <tr>\n        
        <td>debug.useFilter</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>digest.createAuthenticatedToken</td>\n                <td>false</td>\n 
            </tr>\n        \n            \n            <tr>\n                
<td>digest.key</td>\n                <td>changeme</td>\n            </tr>\n     
   \n            \n            <tr>\n                
<td>digest.nonceValiditySeconds</td>\n                <td>300</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>digest.passwordAlreadyEncoded</td>\n                <td>false</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>digest.realmName</td>\n                <td>Grails Realm</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>digest.useCleartextPasswords</td>\n                <td>false</td>\n         
   </tr>\n        \n            \n            <tr>\n                
<td>failureHandler.ajaxAuthFailUrl</td>\n                
<td>/login/authfail?ajax=true</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>failureHandler.allowSessionCr
 eation</td>\n                <td>true</td>\n            </tr>\n        \n      
      \n            <tr>\n                
<td>failureHandler.defaultFailureUrl</td>\n                
<td>/login/authfail?login_error=1</td>\n            </tr>\n        \n           
 \n            <tr>\n                
<td>failureHandler.exceptionMappings</td>\n                <td>[]</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>failureHandler.useForward</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>fii.alwaysReauthenticate</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>fii.observeOncePerRequest</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>fii.publishAuthorizationSuccess</td>\n                <td>false</td>\n      
      </tr>\n        \n            \n 
            <tr>\n                <td>fii.rejectPublicInvocations</td>\n        
        <td>true</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>fii.validateConfigAttributes</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>filterChain.chainMap</td>\n                
<td>[{pattern=/assets/**, filters=none}, {pattern=/**/favicon.ico, 
filters=none}, {pattern=/**/css/**, filters=none}, {pattern=/**/images/**, 
filters=none}, {pattern=/**/js/**, filters=none}, {pattern=/**, 
filters=JOINED_FILTERS}]</td>\n            </tr>\n        \n            \n      
      <tr>\n                <td>filterChain.chainMap[0].filters</td>\n          
      <td>none</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[0].pattern</td>\n                
<td>/assets/**</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>
 filterChain.chainMap[1].filters</td>\n                <td>none</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>filterChain.chainMap[1].pattern</td>\n                
<td>/**/favicon.ico</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>filterChain.chainMap[2].filters</td>\n               
 <td>none</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>filterChain.chainMap[2].pattern</td>\n                
<td>/**/css/**</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[3].filters</td>\n                
<td>none</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>filterChain.chainMap[3].pattern</td>\n                
<td>/**/images/**</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[4].filters</td>\n                
<td>none</td>\n  
           </tr>\n        \n            \n            <tr>\n                
<td>filterChain.chainMap[4].pattern</td>\n                <td>/**/js/**</td>\n  
          </tr>\n        \n            \n            <tr>\n                
<td>filterChain.chainMap[5].filters</td>\n                
<td>JOINED_FILTERS</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>filterChain.chainMap[5].pattern</td>\n                
<td>/**</td>\n            </tr>\n        \n            \n            <tr>\n     
           <td>gsp.layoutAuth</td>\n                <td>main</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>gsp.layoutDenied</td>\n                <td>main</td>\n            </tr>\n   
     \n            \n            <tr>\n                
<td>interceptUrlMap</td>\n                <td>[]</td>\n            </tr>\n      
  \n            \n            <tr>\n                <td>ipRestrictions</td>\n   
             <td>[]</td>\n    
         </tr>\n        \n            \n            <tr>\n                
<td>logout.afterLogoutUrl</td>\n                <td>/</td>\n            </tr>\n 
       \n            \n            <tr>\n                
<td>logout.alwaysUseDefaultTargetUrl</td>\n                <td>false</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>logout.clearAuthentication</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>logout.filterProcessesUrl</td>\n                <td>/logoff</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>logout.handlerNames</td>\n                <td>[]</td>\n            </tr>\n  
      \n            \n            <tr>\n                
<td>logout.invalidateHttpSession</td>\n                <td>true</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>logout.postOnly</td>\n                <td>true</td>\n   
          </tr>\n        \n            \n            <tr>\n                
<td>logout.redirectToReferer</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>logout.targetUrlParameter</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>password.algorithm</td>\n                <td>bcrypt</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>password.bcrypt.logrounds</td>\n                <td>4</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>password.encodeHashAsBase64</td>\n                <td>false</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>password.hash.iterations</td>\n                <td>1</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>portMapper.httpPort</td>\n                <td>8080</td>\n           
  </tr>\n        \n            \n            <tr>\n                
<td>portMapper.httpsPort</td>\n                <td>8443</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>printStatusMessages</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>providerManager.eraseCredentialsAfterAuthentication</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>providerNames</td>\n                <td>[]</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>redirectStrategy.contextRelative</td>\n                <td>false</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>registerLoggerListener</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rejectIfNoRule</td>\n                <td>true</td>\n    
         </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.alwaysRemember</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rememberMe.cookieDomain</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rememberMe.cookieName</td>\n                <td>grails_remember_me</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.createSessionOnSuccess</td>\n                <td>true</td>\n     
       </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.key</td>\n                <td>grailsRocks</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>rememberMe.parameter</td>\n                <td>remember-me</td>\n           
 </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.persistent</td>\n                <
 td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>rememberMe.persistentToken.domainClassName</td>\n              
  <td>test.PersistentToken</td>\n            </tr>\n        \n            \n    
        <tr>\n                
<td>rememberMe.persistentToken.seriesLength</td>\n                <td>16</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.persistentToken.tokenLength</td>\n                <td>16</td>\n  
          </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.tokenValiditySeconds</td>\n                <td>1209600</td>\n    
        </tr>\n        \n            \n            <tr>\n                
<td>rememberMe.useSecureCookie</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>requestCache.createSession</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            
 <tr>\n                <td>requestMap.className</td>\n                
<td>test.Requestmap</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>requestMap.configAttributeField</td>\n               
 <td>configAttribute</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>requestMap.httpMethodField</td>\n                
<td>httpMethod</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>requestMap.urlField</td>\n                
<td>url</td>\n            </tr>\n        \n            \n            <tr>\n     
           <td>roleHierarchy</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>sch.strategyName</td>\n                <td>MODE_THREADLOCAL</td>\n          
  </tr>\n        \n            \n            <tr>\n                
<td>scpf.forceEagerSessionCreation</td>\n                <td>false</td>\n       
     </tr>\n        \
 n            \n            <tr>\n                
<td>scr.allowSessionCreation</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>scr.disableUrlRewriting</td>\n                <td>true</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>scr.springSecurityContextKey</td>\n                
<td>SPRING_SECURITY_CONTEXT</td>\n            </tr>\n        \n            \n   
         <tr>\n                <td>secureChannel.definition</td>\n              
  <td>[{pattern=/testsecure/**, access=REQUIRES_SECURE_CHANNEL}, 
{pattern=/testinsecure/**, access=REQUIRES_INSECURE_CHANNEL}, 
{pattern=/testany/**, access=ANY_CHANNEL}]</td>\n            </tr>\n        \n  
          \n            <tr>\n                
<td>secureChannel.definition[0].access</td>\n                
<td>REQUIRES_SECURE_CHANNEL</td>\n            </tr>\n        \n            \n   
         <tr>\n                <td>secureChannel.defin
 ition[0].pattern</td>\n                <td>/testsecure/**</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>secureChannel.definition[1].access</td>\n                
<td>REQUIRES_INSECURE_CHANNEL</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>secureChannel.definition[1].pattern</td>\n 
               <td>/testinsecure/**</td>\n            </tr>\n        \n         
   \n            <tr>\n                
<td>secureChannel.definition[2].access</td>\n                
<td>ANY_CHANNEL</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>secureChannel.definition[2].pattern</td>\n            
    <td>/testany/**</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>secureChannel.insecureConfigAttributeKeyword</td>\n  
              <td>REQUIRES_INSECURE_CHANNEL</td>\n            </tr>\n        \n 
           \n            <tr>\n                <td>secureC
 hannel.insecureHeaderName</td>\n                <td>X-Forwarded-Proto</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>secureChannel.insecureHeaderValue</td>\n                <td>https</td>\n    
        </tr>\n        \n            \n            <tr>\n                
<td>secureChannel.secureConfigAttributeKeyword</td>\n                
<td>REQUIRES_SECURE_CHANNEL</td>\n            </tr>\n        \n            \n   
         <tr>\n                <td>secureChannel.secureHeaderName</td>\n        
        <td>X-Forwarded-Proto</td>\n            </tr>\n        \n            \n 
           <tr>\n                <td>secureChannel.secureHeaderValue</td>\n     
           <td>http</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>secureChannel.useHeaderCheckChannelSecurity</td>\n   
             <td>false</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>securityConfigType</td>\n       
          <td>Requestmap</td>\n            </tr>\n        \n            \n      
      <tr>\n                
<td>sessionFixationPrevention.alwaysCreateSession</td>\n                
<td>false</td>\n            </tr>\n        \n            \n            <tr>\n   
             <td>sessionFixationPrevention.migrate</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>successHandler.ajaxSuccessUrl</td>\n                
<td>/login/ajaxSuccess</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>successHandler.alwaysUseDefault</td>\n            
    <td>false</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>successHandler.defaultTargetUrl</td>\n                
<td>/</td>\n            </tr>\n        \n            \n            <tr>\n       
         <td>successHandler.targetUrlParameter</td>\n                
<td>spring-security-redirect</td>\n            </tr>\
 n        \n            \n            <tr>\n                
<td>successHandler.useReferer</td>\n                <td>false</td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>switchUser.exitUserUrl</td>\n                <td>/logout/impersonate</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>switchUser.switchFailureUrl</td>\n                <td></td>\n            
</tr>\n        \n            \n            <tr>\n                
<td>switchUser.switchUserUrl</td>\n                
<td>/login/impersonate</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>switchUser.targetUrl</td>\n                
<td></td>\n            </tr>\n        \n            \n            <tr>\n        
        <td>switchUser.usernameParameter</td>\n                
<td>username</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.encodePassword</td>\n                <td>fals
 e</td>\n            </tr>\n        \n            \n            <tr>\n          
      <td>ui.forgotPassword.emailFrom</td>\n                <td>Do Not Reply 
&lt;do.not.reply@localhost&gt;</td>\n            </tr>\n        \n            
\n            <tr>\n                <td>ui.forgotPassword.postResetUrl</td>\n   
             <td></td>\n            </tr>\n        \n            \n            
<tr>\n                
<td>ui.forgotPassword.requireForgotPassEmailValidation</td>\n                
<td>true</td>\n            </tr>\n        \n            \n            <tr>\n    
            <td>ui.forgotPassword.validationUserLookUpProperty</td>\n           
     <td>user</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.gsp.layoutRegister</td>\n                
<td>register</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.gsp.layoutUi</td>\n                
<td>springSecurityUI</td>\n            </tr>\n        \n      
       \n            <tr>\n                
<td>ui.register.defaultRoleNames</td>\n                <td>[ROLE_USER]</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>ui.register.emailFrom</td>\n                <td>Do Not Reply 
&lt;do.not.reply@localhost&gt;</td>\n            </tr>\n        \n            
\n            <tr>\n                <td>ui.register.postRegisterUrl</td>\n      
          <td></td>\n            </tr>\n        \n            \n            
<tr>\n                <td>ui.register.requireEmailValidation</td>\n             
   <td>true</td>\n            </tr>\n        \n            \n            <tr>\n 
               <td>ui.switchUserRoleName</td>\n                
<td>ROLE_SWITCH_USER</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>useBasicAuth</td>\n                <td>false</td>\n 
           </tr>\n        \n            \n            <tr>\n                
<td>useDigestAuth</td>\n                <td
 >false</td>\n            </tr>\n        \n            \n            <tr>\n     
 >           <td>useExternalClasses</td>\n                <td>false</td>\n      
 >      </tr>\n        \n            \n            <tr>\n                
 ><td>useHttpSessionEventPublisher</td>\n                <td>false</td>\n       
 >     </tr>\n        \n            \n            <tr>\n                
 ><td>useRoleGroups</td>\n                <td>false</td>\n            </tr>\n   
 >     \n            \n            <tr>\n                
 ><td>useSecurityEventListener</td>\n                <td>false</td>\n           
 > </tr>\n        \n            \n            <tr>\n                
 ><td>useSessionFixationPrevention</td>\n                <td>true</td>\n        
 >    </tr>\n        \n            \n            <tr>\n                
 ><td>useSwitchUserFilter</td>\n                <td>true</td>\n            
 ></tr>\n        \n            \n            <tr>\n                
 ><td>useX509</td>\n                <td>false</td>\n         
    </tr>\n        \n            \n            <tr>\n                
<td>userLookup.accountExpiredPropertyName</td>\n                
<td>accountExpired</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>userLookup.accountLockedPropertyName</td>\n           
     <td>accountLocked</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>userLookup.authoritiesPropertyName</td>\n         
       <td>authorities</td>\n            </tr>\n        \n            \n        
    <tr>\n                <td>userLookup.authorityJoinClassName</td>\n          
      <td>test.UserRole</td>\n            </tr>\n        \n            \n       
     <tr>\n                <td>userLookup.enabledPropertyName</td>\n            
    <td>enabled</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>userLookup.passwordExpiredPropertyName</td>\n         
       <td>passwordExpired</td>\n            </tr>\n        \n      
       \n            <tr>\n                
<td>userLookup.passwordPropertyName</td>\n                <td>password</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>userLookup.userDomainClassName</td>\n                <td>test.User</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>userLookup.usernameIgnoreCase</td>\n                <td>false</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>userLookup.usernamePropertyName</td>\n                <td>username</td>\n   
         </tr>\n        \n            \n            <tr>\n                
<td>voterNames</td>\n                <td>[]</td>\n            </tr>\n        \n 
           \n            <tr>\n                
<td>x509.checkForPrincipalChanges</td>\n                <td>false</td>\n        
    </tr>\n        \n            \n            <tr>\n                
<td>x509.continueFilterChainOnUnsuccessfulAuthentication</td>\n     
            <td>true</td>\n            </tr>\n        \n            \n          
  <tr>\n                <td>x509.invalidateSessionOnPrincipalChange</td>\n      
          <td>true</td>\n            </tr>\n        \n            \n            
<tr>\n                <td>x509.subjectDnClosure</td>\n                
<td></td>\n            </tr>\n        \n            \n            <tr>\n        
        <td>x509.subjectDnRegex</td>\n                
<td>CN=(.*?)(?:,|$)</td>\n            </tr>\n        \n            \n           
 <tr>\n                <td>x509.throwExceptionWhenTokenRejected</td>\n          
      <td>false</td>\n            </tr>\n        \n        </tbody>\n    
</table>\n</div>\n\n<script type="text/javascript" 
src="/assets/spring-security-ui-ajaxLogin.js?compile=false"></script>\n<script 
type="text/javascript" 
src="/assets/spring-security-ui.js?compile=false"></script>\n\n<script>\nvar 
loggingYouIn = "Logging you in ...";\n\t</script>\n\n\t</div>\n\t<script 
type="text/javascr
 ipt" 
src="/assets/webjars/jquery/4.0.0/dist/jquery.js?compile=false"></script>\n<script
 type="text/javascript" 
src="/assets/webjars/bootstrap/5.3.8/dist/js/bootstrap.bundle.js?compile=false"></script>\n<script
 type="text/javascript" 
src="/assets/application.js?compile=false"></script>\n\n\t\n\n\n</body></html>'
   
        at 
simple.spec.DefaultSecurityInfoSpec.testConfig_closure2(DefaultSecurityInfoSpec.groovy:44)
        at geb.waiting.Wait.waitFor(Wait.groovy:117)
        ... 5 more
   ```
   
   </details>
   
   ### Muted Tests
   > [!NOTE]
   > Checks are currently running using the configuration below.
   
   Select tests to mute in this pull request:
   
   🔲 DefaultSecurityInfoSpec > testConfig <!-- 
uniqueId=[engine:spock]/[spec:simple.spec.DefaultSecurityInfoSpec]/[feature:$spock_feature_2_0]
 -->
   
   Reuse successful test results:
   
   🔲 ♻️ Only rerun the tests that failed or were muted before
   
   Click the checkbox to trigger a rerun:
   
   🔲 **Rerun jobs**
   
   ---
   _Learn more about TestLens at [testlens.app](https://testlens.app)._
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to