blob: 5198a5be8bd5a5ce28a2e29bcef874564f7150a6 [file]
/*
* 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
*
* https://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 spec
import grails.testing.mixin.integration.Integration
import org.springframework.security.core.userdetails.User
import org.springframework.security.core.userdetails.UserCache
@Integration
class ExtendedSecurityInfoSpec extends AbstractSecuritySpec {
UserCache userCache
void testConfig() {
when:
browser.go('securityInfo/config')
then:
assertContentContains('adh.ajaxErrorPage /login/ajaxDenied')
assertContentContains('Showing 1 to 10 of ')
}
void testMappings() {
when:
browser.go('securityInfo/mappings')
then:
assertContentContainsOne(
'ROLE_RUN_AS, IS_AUTHENTICATED_FULLY',
'IS_AUTHENTICATED_FULLY, ROLE_RUN_AS'
)
assertContentContains('/j_spring_security_switch_user')
assertContentContains('/secure/**')
assertContentContains('ROLE_ADMIN')
}
void testCurrentAuth() {
when:
browser.go('securityInfo/currentAuth')
then:
assertContentContains('Details WebAuthenticationDetails')
assertContentContains('__grails.anonymous.user__')
}
void testUserCache() {
given:
userCache.putUserInCache(new User('testuser', 'pw', []))
when:
browser.go('securityInfo/usercache')
then:
assertContentContains('UserCache class: org.ehcache.jsr107.Eh107Cache')
assertContentContains('testuser')
cleanup:
userCache.removeUserFromCache('testuser')
}
void testEmptyUserCache() {
when:
browser.go('securityInfo/usercache')
then:
assertContentContains('UserCache class: org.ehcache.jsr107.Eh107Cache')
assertContentDoesNotContain('testuser')
}
void testFilterChains() {
when:
browser.go('securityInfo/filterChains')
then:
assertContentContains('/assets/**')
assertContentContains('/**/js/**')
assertContentContains('/**/css/**')
assertContentContains('/**/images/**')
assertContentContains('/**/favicon.ico')
assertContentContains('/**')
assertContentContains('grails.plugin.springsecurity.web.SecurityRequestHolderFilter')
assertContentContains('org.springframework.security.web.access.channel.ChannelProcessingFilter')
assertContentContains('org.springframework.security.web.context.SecurityContextPersistenceFilter')
assertContentContains('org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter')
assertContentContains('grails.plugin.springsecurity.web.filter.GrailsRememberMeAuthenticationFilter')
assertContentContains('grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter')
assertContentContains('org.springframework.security.web.access.intercept.FilterSecurityInterceptor')
assertContentContains('grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter')
assertContentContains('grails.plugin.springsecurity.web.authentication.GrailsUsernamePasswordAuthenticationFilter')
assertContentContains('org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter')
assertContentContains('grails.plugin.springsecurity.web.filter.GrailsRememberMeAuthenticationFilter')
assertContentContains('grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter')
assertContentContains('org.springframework.security.web.access.intercept.FilterSecurityInterceptor')
assertContentContains('org.springframework.security.web.authentication.switchuser.SwitchUserFilter')
}
void testLogoutHandlers() {
when:
browser.go('securityInfo/logoutHandlers')
then:
assertContentContains('org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices')
assertContentContains('org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler')
}
void testVoters() {
when:
browser.go('securityInfo/voters')
then:
assertContentContains('org.springframework.security.access.vote.AuthenticatedVoter')
assertContentContains('org.springframework.security.access.vote.RoleHierarchyVoter')
assertContentContains('grails.plugin.springsecurity.web.access.expression.WebExpressionVoter')
}
void testProviders() {
when:
browser.go('securityInfo/providers')
then:
assertContentContains('org.springframework.security.authentication.dao.DaoAuthenticationProvider')
assertContentContains('grails.plugin.springsecurity.authentication.GrailsAnonymousAuthenticationProvider')
assertContentContains('org.springframework.security.authentication.RememberMeAuthenticationProvider')
}
}