Class AuthServerForwarder

java.lang.Object
io.deephaven.enterprise.auth.AuthServerForwarder
All Implemented Interfaces:
AutoCloseable

public class AuthServerForwarder extends Object implements AutoCloseable
Class to manage requests that need to go to a specific authentication server origin. Eg, verifying tokens.
  • Constructor Details

    • AuthServerForwarder

      public AuthServerForwarder()
  • Method Details

    • peers

      public Set<InetAddress> peers()
      Authentication server peers
      Returns:
      a set of addresses for the authentication servers
    • peerCount

      public int peerCount()
      The number of authentication servers available
      Returns:
      the number of authentication servers available
    • otherPeers

      public Set<InetAddress> otherPeers(InetAddress toExclude)
      Authentication server peers other than the provided one
      Parameters:
      toExclude - one authentication server to exclude from the result
      Returns:
      a set of addresses for the authentication servers not included the provided one
    • verifyTokenToOrigin

      public boolean verifyTokenToOrigin(String service, AuthToken authToken, long remainingDeadlineTimeMillis)
      Verify an AuthToken to the particular authentication server that generated it.
      Parameters:
      service - The service for which the token is intended
      authToken - The auth token
      remainingDeadlineTimeMillis - How much time is remaining in the deadline for this request
      Returns:
      true if the token verifies correctly.
    • verifyTokenToOriginOrThrow

      public boolean verifyTokenToOriginOrThrow(String service, AuthToken authToken, long remainingDeadlineTimeMillis) throws AuthServerForwarder.InvalidTokenOriginException
      Verify an AuthToken to the particular authentication server that generated it.
      Parameters:
      service - The service for which the token is intended
      authToken - The auth token
      remainingDeadlineTimeMillis - How much time is remaining in the deadline for this request
      Returns:
      true if the token verifies correctly.
      Throws:
      AuthServerForwarder.InvalidTokenOriginException - if the token origin address is not recognized as a valid origin address
      io.deephaven.shadow.core.io.grpc.StatusRuntimeException - if the gRPC call failed
    • verifyChallenge

      public boolean verifyChallenge(ClientId clientId, io.deephaven.shadow.core.com.google.protobuf.ByteString publicKey, UserContext userContext, InetAddress addy, io.deephaven.shadow.core.com.google.protobuf.ByteString challengeResponse, long remainingDeadlineAfterTimeMillis)
    • getStub

      Throws:
      AuthServerForwarder.InvalidTokenOriginException
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable