blob: 0f9859bf317f47e09e0ddb89c1585aac15f2dad0 [file] [log] [blame]
/*
* 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.
*/
plugins {
id 'java-library'
id 'org.apache.grails.gradle.grails-plugin'
}
group = 'org.apache.grails'
ext {
publishArtifactId = 'grails-spring-security-rest'
pomTitle = 'Grails Spring Security REST Plugin'
pomDescription = 'Grails plugin to implement token-based, RESTful authentication using Spring Security'
pomDevelopers = [
alvarosanchez: 'Alvaro Sanchez-Mariscal',
jameskleeh: 'James Kleeh',
jdaugherty: 'James Daugherty'
]
}
dependencies {
implementation platform("org.apache.grails:grails-bom:$grailsVersion")
api project(':core-plugin'), {
// api: NullAuthenticationEventPublisher, SecurityEventListener
// impl: BeanTypeResolver, @Secured(runtime), SecurityFilterPosition, SpringSecurityUtils
}
api 'com.nimbusds:nimbus-jose-jwt:9.42', {
// api: EncryptionMethod, JOSEException, JWEAlgorithm, JWSAlgorithm, JWSSigner, JWT, JWTClaimsSet
// impl: EncryptedJWT, EncryptionMethod, JWEHeader, JWSHeader, JWTParser, MACSigner, MACVerifier, PlainJWT, RSADecrypter, RSAEncrypter, SignedJWT
}
api 'org.apache.grails.web:grails-web-url-mappings', {
// api: LinkGenerator
}
api "org.pac4j:pac4j-core:$pac4jVersion", {
// api: CallContext, CommonProfile, IndirectClient, UserProfile
// impl: Credentials, RedirectionAction, WebContext
}
api 'org.springframework:spring-beans', {
// api: InitializingBean
// impl: BeanWrapperImpl
}
api 'org.springframework:spring-context', {
// api: ApplicationContextAware, ApplicationEvent, ApplicationEventPublisher, ApplicationListener
}
api 'org.springframework:spring-web', {
// api: GenericFilterBean
// impl: HttpStatus, MediaType
}
api 'org.springframework.security:spring-security-core', {
// api: AbstractAuthenticationToken, AccessDeniedException, Authentication, AuthenticationDetailsSource, AuthenticationEventPublisher,
// AuthenticationException, AuthenticationFailureHandler, AuthenticationManager, AuthenticationProvider,
// AuthenticationSuccessHandler, DefaultAuthenticationEventPublisher, GrantedAuthority, User, UserDetails,
// UserDetailsChecker, UserDetailsService, UsernameNotFoundException, UsernamePasswordAuthenticationToken
// impl: SecurityContextHolder, SimpleGrantedAuthority
}
api 'org.springframework.security:spring-security-crypto', {
// api: PasswordEncoder
// impl: Argon2PasswordEncoder, BCryptPasswordEncoder, DelegatingPasswordEncoder, LdapShaPasswordEncoder,
// Md4PasswordEncoder, MessageDigestPasswordEncoder, NoOpPasswordEncoder, Pbkdf2PasswordEncoder,
// StandardPasswordEncoder, SCryptPasswordEncoder
}
api 'org.springframework.security:spring-security-web', {
// api: AccessDeniedHandlerImpl, AuthenticationEntryPoint, RequestMatcher
// impl: ExceptionTranslationFilter, Http403ForbiddenEntryPoint, NullRequestCache
}
implementation "org.apache.commons:commons-lang3", {
// impl: RandomStringUtils
}
implementation 'com.google.guava:guava:33.3.1-jre', {
// impl: CacheBuilder, LoadingCache
}
implementation 'commons-codec:commons-codec', {
// impl: Base64
}
implementation 'org.apache.grails:grails-codecs', {
// impl: URLCodec
}
implementation 'org.apache.grails:grails-converters', {
// impl: JSON
}
implementation "org.pac4j:pac4j-jakartaee:$pac4jVersion", {
// impl: JEEContext, JEESessionStore
}
implementation 'org.springframework:spring-core', {
// impl: Assert
}
runtimeOnly 'org.apache.grails:grails-services', {
// Project has services
}
compileOnly 'org.apache.groovy:groovy' // Provided as this is a Grails plugin
compileOnly 'org.apache.grails:grails-core' // Provided as this is a Grails plugin
compileOnly 'org.apache.grails:grails-controllers', {
// ControllerTraitInjector
}
compileOnly 'jakarta.servlet:jakarta.servlet-api', { // Provided by Tomcat
// api: FilterChain, HttpServletResponse, HttpServletRequest, ServletException, ServletRequest, ServletResponse
}
testImplementation "org.pac4j:pac4j-oauth:$pac4jVersion", {
// impl: CasOAuthWrapperClient
}
testImplementation 'org.gperfutils:gbench:0.4.3-groovy-2.4'
testImplementation 'org.apache.grails:grails-testing-support-datamapping'
testImplementation 'org.apache.grails:grails-testing-support-web'
testImplementation 'org.spockframework:spock-core'
testRuntimeOnly 'net.bytebuddy:byte-buddy'
}
apply {
from rootProject.layout.projectDirectory.file('gradle/plugin-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/groovydoc-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/reproducible-config.gradle')
}