Package org.jenkinsci.plugins
Class GitLabSecurityRealm
java.lang.Object
hudson.model.AbstractDescribableImpl<SecurityRealm>
hudson.security.SecurityRealm
org.jenkinsci.plugins.GitLabSecurityRealm
- All Implemented Interfaces:
ExtensionPoint
,Describable<SecurityRealm>
,UserDetailsService
Implementation of the AbstractPasswordBasedSecurityRealm that uses gitlab
oauth to verify the user can login.
This is based on the GitLabSecurityRealm from the gitlab-auth-plugin written
by Alex Ackerman.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
static final class
Nested classes/interfaces inherited from class hudson.security.SecurityRealm
SecurityRealm.SecurityComponents
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Field Summary
Fields inherited from class hudson.security.SecurityRealm
AUTHENTICATED_AUTHORITY, AUTHENTICATED_AUTHORITY2, LIST, NO_AUTHENTICATION
-
Constructor Summary
ConstructorDescriptionGitLabSecurityRealm
(String gitlabWebUri, String gitlabApiUri, String clientID, String clientSecret) -
Method Summary
Modifier and TypeMethodDescriptionboolean
org.kohsuke.stapler.HttpResponse
doCommenceLogin
(org.kohsuke.stapler.StaplerRequest request, String from, String referer) org.kohsuke.stapler.HttpResponse
doFinishLogin
(org.kohsuke.stapler.StaplerRequest request) This is where the user comes back to at the end of the OpenID redirect ping-pong.boolean
Compare an object against this instance for equivalence.Used by jellyprotected String
getPostLogOutUrl
(org.kohsuke.stapler.StaplerRequest req, Authentication auth) int
hashCode()
loadGroupByGroupname
(String groupName) loadUserByUsername
(String username) Methods inherited from class hudson.security.SecurityRealm
all, canLogOut, commenceSignup, commonFilters, createCliAuthenticator, createFilter, doCaptcha, doLogout, getAuthenticationGatewayUrl, getCaptchaSupport, getCaptchaSupportDescriptors, getFrom, getGroupIdStrategy, getPostLogOutUrl2, getSecurityComponents, getUserIdStrategy, loadGroupByGroupname, loadGroupByGroupname2, loadUserByUsername2, setCaptchaSupport, validateCaptcha
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.acegisecurity.userdetails.UserDetailsService
toSpring
-
Constructor Details
-
GitLabSecurityRealm
@DataBoundConstructor public GitLabSecurityRealm(String gitlabWebUri, String gitlabApiUri, String clientID, String clientSecret) - Parameters:
gitlabWebUri
- The URI to the root of the web UI for GitLab or GitLab Enterprise, including the protocol (e.g. https).gitlabApiUri
- The URI to the root of the API for GitLab or GitLab Enterprise, including the protocol (e.g. https).clientID
- The client ID for the created OAuth Application.clientSecret
- The client secret for the created GitLab OAuth Application. Should be encrypted value of aSecret
, for compatibility also plain text values are accepted.
-
-
Method Details
-
getGitlabApiUri
- Returns:
- the URI to the API root of GitLab or GitLab Enterprise.
-
getGitlabWebUri
- Returns:
- the uri to the web root of GitLab (varies for GitLab Enterprise Edition)
-
getClientID
- Returns:
- the clientID
-
getClientSecret
Used by jelly- Returns:
- the client secret
-
doCommenceLogin
public org.kohsuke.stapler.HttpResponse doCommenceLogin(org.kohsuke.stapler.StaplerRequest request, @QueryParameter String from, @Header("Referer") String referer) throws IOException - Throws:
IOException
-
doFinishLogin
public org.kohsuke.stapler.HttpResponse doFinishLogin(org.kohsuke.stapler.StaplerRequest request) throws IOException This is where the user comes back to at the end of the OpenID redirect ping-pong.- Throws:
IOException
-
allowsSignup
public boolean allowsSignup()- Overrides:
allowsSignup
in classSecurityRealm
-
createSecurityComponents
- Specified by:
createSecurityComponents
in classSecurityRealm
-
getLoginUrl
- Overrides:
getLoginUrl
in classSecurityRealm
-
getPostLogOutUrl
- Overrides:
getPostLogOutUrl
in classSecurityRealm
-
getDescriptor
- Specified by:
getDescriptor
in interfaceDescribable<SecurityRealm>
- Overrides:
getDescriptor
in classSecurityRealm
-
loadUserByUsername
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException - Specified by:
loadUserByUsername
in interfaceUserDetailsService
- Overrides:
loadUserByUsername
in classSecurityRealm
- Parameters:
username
-- Throws:
UsernameNotFoundException
DataAccessException
-
equals
Compare an object against this instance for equivalence. -
hashCode
public int hashCode() -
loadGroupByGroupname
public GroupDetails loadGroupByGroupname(String groupName) throws UsernameNotFoundException, DataAccessException - Overrides:
loadGroupByGroupname
in classSecurityRealm
- Parameters:
groupName
-- Throws:
UsernameNotFoundException
DataAccessException
-