Package org.yamcs.security
Class ApiKeyAuthModule
java.lang.Object
org.yamcs.security.AbstractHttpRequestAuthModule
org.yamcs.security.ApiKeyAuthModule
- All Implemented Interfaces:
AuthModule
Identifies logins based on an API key, this should be used only for calling programs.
This AuthModule is currently restricted to generating and verifying in-memory API keys.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.yamcs.security.AbstractHttpRequestAuthModule
AbstractHttpRequestAuthModule.HttpRequestToken
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetAuthenticationInfo
(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRequest request) getAuthorizationInfo
(AuthenticationInfo authenticationInfo) Retrieve access control information based on the given AuthenticationInfo.getSpec()
Returns the valid configuration of the input args of this AuthModule.boolean
handles
(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRequest request) Returns true if this AuthModule is capable of handling the given HTTP request.void
init
(YConfiguration args) Initialize this AuthModule.boolean
verifyValidity
(AuthenticationInfo authenticationInfo) Verify if previously generated authentication info is (still) valid.Methods inherited from class org.yamcs.security.AbstractHttpRequestAuthModule
getAuthenticationInfo
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.yamcs.security.AuthModule
authenticationSucceeded, getAuthenticationInfo
-
Constructor Details
-
ApiKeyAuthModule
public ApiKeyAuthModule()
-
-
Method Details
-
getSpec
Description copied from interface:AuthModule
Returns the valid configuration of the input args of this AuthModule.- Specified by:
getSpec
in interfaceAuthModule
- Returns:
- the argument specification.
-
init
Description copied from interface:AuthModule
Initialize this AuthModule.- Specified by:
init
in interfaceAuthModule
- Parameters:
args
- The configured arguments for this AuthModule. IfAuthModule.getSpec()
is implemented then this contains the arguments after being validated (including any defaults).- Throws:
InitException
- When something goes wrong during the execution of this method.
-
handles
public boolean handles(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRequest request) Description copied from class:AbstractHttpRequestAuthModule
Returns true if this AuthModule is capable of handling the given HTTP request.- Specified by:
handles
in classAbstractHttpRequestAuthModule
-
getAuthenticationInfo
public AuthenticationInfo getAuthenticationInfo(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRequest request) throws AuthenticationException - Specified by:
getAuthenticationInfo
in classAbstractHttpRequestAuthModule
- Throws:
AuthenticationException
-
getAuthorizationInfo
public AuthorizationInfo getAuthorizationInfo(AuthenticationInfo authenticationInfo) throws AuthorizationException Description copied from interface:AuthModule
Retrieve access control information based on the given AuthenticationInfo. This AuthenticationInfo may have been generated by a different AuthModule.- Specified by:
getAuthorizationInfo
in interfaceAuthModule
- Returns:
- an info object containing role/privilege information of the subject
- Throws:
AuthorizationException
-
verifyValidity
Description copied from interface:AuthModule
Verify if previously generated authentication info is (still) valid. For example, if the authentication info references an externally issued expiring ticket, this can be validated here.This method is called very frequently, so implementations must take care to limit external requests.
- Specified by:
verifyValidity
in interfaceAuthModule
- Parameters:
authenticationInfo
- information relevant to the authentication process- Returns:
- true if the authentication info is valid, false otherwise
-