org.edg.security.voms
Class VOMSInfo

java.lang.Object
  |
  +--org.edg.security.voms.VOMSInfo

public class VOMSInfo
extends java.lang.Object

Representation of a VOMS token.

Author:
Olle Mulmo, by heavily modifying code from Lory Karoly

Nested Class Summary
protected  class VOMSInfo.SnoopInputStream
          Simple helper class that remembers everything read from an input stream in a separate output stream
 
Field Summary
static java.lang.String VO_CAP
          The identifier for VO capability information
static java.lang.String VO_FULL_ATTRIBUTE
          The identifier for VO fully qualified attribute information: /vo[/group][/role=role][/cap=capability]
static java.lang.String VO_GROUP
          The identifier for VO group information
static java.lang.String VO_ROLE
          The identifier for VO role information
 
Constructor Summary
VOMSInfo()
           
VOMSInfo(java.io.InputStream is)
          Creates a VOMS info blob by reading from the (binary) inputstream.
 
Method Summary
 void addData(java.lang.String key, java.lang.String value)
          Adds a data part item of the VOMS info (key=value pair).
 java.util.List getCapabilities()
          Convenience wrapper
 java.util.Map getData()
          Returns the data part of the VOMS info, which is assumed to be in ASCII format.
 java.util.List getData(java.lang.String key)
           
 java.util.List getFullyQualifiedAttributes()
          Convenience wrapper
 java.util.List getGroups()
          Convenience wrapper
 java.util.Date getNotAfter()
          Returns the notAfter.
 java.util.Date getNotBefore()
          Returns the notBefore.
 java.util.List getRoles()
          Convenience wrapper
 java.lang.String getServer()
          Returns the name of the issuing VOMS server (RFC2253 format)
 java.lang.String getServerCa()
          Returns the serverCa name (RFC2253 format)
 byte[] getSignature()
          Returns the signature.
 byte[] getTbs()
          Returns the tbs.
 java.lang.String getUri()
          Returns the uri.
 java.lang.String getUser()
          Returns the user name (RFC2253 format)
 java.lang.String getUserCa()
          Returns the userCa name (RFC2253 format)
 java.lang.String getVO()
           
protected  void parse(java.io.InputStream is)
           
protected static void read(java.io.InputStream is, java.lang.String header)
           
protected static java.util.Date readDate(java.io.InputStream is, java.lang.String header)
           
protected static int readInt(java.io.InputStream is, java.lang.String header)
           
protected static java.lang.String readLine(java.io.InputStream is, java.lang.String header)
           
 void setNotAfter(java.util.Date notAfter)
          Sets the notAfter date
 void setNotBefore(java.util.Date notBefore)
          Sets the notBefore date
 void setServer(java.lang.String server)
          Sets the name of the issuing VOMS server (RFC2253 format)
 void setServerCa(java.lang.String serverCa)
          Sets the serverCa.
 void setSignature(byte[] signature)
          Sets the signature.
 void setTbs(byte[] tbs)
          Sets the tbs.
 void setUri(java.lang.String uri)
          Sets the uri.
 void setUser(java.lang.String user)
          Sets the user.
 void setUserCa(java.lang.String userCa)
          Sets the userCa.
 void setVO(java.lang.String vo)
          Sets the vo.
 java.lang.String toString()
           
 boolean verify(java.security.PublicKey key)
          Verifies the signature using the given public key
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

VO_GROUP

public static final java.lang.String VO_GROUP
The identifier for VO group information

See Also:
addData(String,String), getData(String), Constant Field Values

VO_ROLE

public static final java.lang.String VO_ROLE
The identifier for VO role information

See Also:
addData(String,String), getData(String), Constant Field Values

VO_CAP

public static final java.lang.String VO_CAP
The identifier for VO capability information

See Also:
addData(String,String), getData(String), Constant Field Values

VO_FULL_ATTRIBUTE

public static final java.lang.String VO_FULL_ATTRIBUTE
The identifier for VO fully qualified attribute information: /vo[/group][/role=role][/cap=capability]

See Also:
addData(String,String), getData(String), Constant Field Values
Constructor Detail

VOMSInfo

public VOMSInfo()

VOMSInfo

public VOMSInfo(java.io.InputStream is)
         throws java.lang.Exception
Creates a VOMS info blob by reading from the (binary) inputstream.

Method Detail

read

protected static void read(java.io.InputStream is,
                           java.lang.String header)
                    throws java.lang.Exception
java.lang.Exception

readLine

protected static java.lang.String readLine(java.io.InputStream is,
                                           java.lang.String header)
                                    throws java.lang.Exception
java.lang.Exception

readInt

protected static int readInt(java.io.InputStream is,
                             java.lang.String header)
                      throws java.lang.Exception
java.lang.Exception

readDate

protected static java.util.Date readDate(java.io.InputStream is,
                                         java.lang.String header)
                                  throws java.lang.Exception
java.lang.Exception

parse

protected void parse(java.io.InputStream is)
              throws java.lang.Exception
java.lang.Exception

verify

public boolean verify(java.security.PublicKey key)
Verifies the signature using the given public key

Parameters:
key - the public key to verify the signature with
Returns:
boolean true if the signature verifies, false otherwise

addData

public void addData(java.lang.String key,
                    java.lang.String value)
Adds a data part item of the VOMS info (key=value pair).

Parameters:
key - the key
value - the value
See Also:
getData(), getData(String)

getData

public java.util.Map getData()
Returns the data part of the VOMS info, which is assumed to be in ASCII format. The value for each keyword is grouped together under respective key.

Example: The data part

    GROUP=A
    ROLE=C
    GROUP=B
    SPECIAL=A
 
returns the map {GROUP=[A,B], ROLE=[C], SPECIAL=[A]}.

Returns:
Map of List, each list containing the values associated with each keyword.

getData

public java.util.List getData(java.lang.String key)
Returns:
List of String for the given key
See Also:
VO_ROLE, VO_GROUP

getRoles

public java.util.List getRoles()
Convenience wrapper

Returns:
List of String of the VOMS roles
See Also:
getData(String), VO_ROLE

getGroups

public java.util.List getGroups()
Convenience wrapper

Returns:
List of String of the VOMS groups
See Also:
getData(String), VO_GROUP

getCapabilities

public java.util.List getCapabilities()
Convenience wrapper

Returns:
List of String of the VOMS capabilities
See Also:
getData(String), VO_CAP

getFullyQualifiedAttributes

public java.util.List getFullyQualifiedAttributes()
Convenience wrapper

Returns:
List of String of the VOMS fully qualified attributes: /vo[/group][/role=role][/cap=capability]
See Also:
getData(String), VO_FULL_ATTRIBUTE

getVO

public java.lang.String getVO()
Returns:
String the VO name

getNotAfter

public java.util.Date getNotAfter()
Returns the notAfter.

Returns:
Date

getNotBefore

public java.util.Date getNotBefore()
Returns the notBefore.

Returns:
Date

getServer

public java.lang.String getServer()
Returns the name of the issuing VOMS server (RFC2253 format)

Returns:
String
See Also:
DNConvert

getServerCa

public java.lang.String getServerCa()
Returns the serverCa name (RFC2253 format)

Returns:
String
See Also:
DNConvert

getSignature

public byte[] getSignature()
Returns the signature.

Returns:
byte[]

getTbs

public byte[] getTbs()
Returns the tbs.

Returns:
byte[]

getUser

public java.lang.String getUser()
Returns the user name (RFC2253 format)

Returns:
String
See Also:
DNConvert

getUserCa

public java.lang.String getUserCa()
Returns the userCa name (RFC2253 format)

Returns:
String
See Also:
DNConvert

setNotAfter

public void setNotAfter(java.util.Date notAfter)
Sets the notAfter date

Parameters:
notAfter - The notAfter to set

setNotBefore

public void setNotBefore(java.util.Date notBefore)
Sets the notBefore date

Parameters:
notBefore - The notBefore to set

setServer

public void setServer(java.lang.String server)
Sets the name of the issuing VOMS server (RFC2253 format)

Parameters:
server - The server to set

setServerCa

public void setServerCa(java.lang.String serverCa)
Sets the serverCa.

Parameters:
serverCa - The serverCa to set

setSignature

public void setSignature(byte[] signature)
Sets the signature.

Parameters:
signature - The signature to set

setTbs

public void setTbs(byte[] tbs)
Sets the tbs.

Parameters:
tbs - The tbs to set

setUser

public void setUser(java.lang.String user)
Sets the user.

Parameters:
user - The user to set

setUserCa

public void setUserCa(java.lang.String userCa)
Sets the userCa.

Parameters:
userCa - The userCa to set

setVO

public void setVO(java.lang.String vo)
Sets the vo.

Parameters:
vo - The vo to set

getUri

public java.lang.String getUri()
Returns the uri.

Returns:
String

setUri

public void setUri(java.lang.String uri)
Sets the uri.

Parameters:
uri - The uri to set

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object