Package org.springframework.security.core.token

# Class SecureRandomFactoryBean

java.lang.Object
org.springframework.security.core.token.SecureRandomFactoryBean

All Implemented Interfaces:
  `org.springframework.beans.factory.FactoryBean<SecureRandom>`

public class SecureRandomFactoryBean extends Object implements org.springframework.beans.factory.FactoryBean<SecureRandom>
Creates a `SecureRandom` instance.

Since:
  2.0.1

## Field Summary

### Fields inherited from interface org.springframework.beans.factory.FactoryBean

`OBJECT_TYPE_ATTRIBUTE`

## Constructor Summary

Constructors
Constructor
Description
`SecureRandomFactoryBean()`

## Method Summary

Modifier and Type
Method
Description
`SecureRandom`
`getObject()`
`Class<SecureRandom>`
`getObjectType()`
`boolean`
`isSingleton()`
`void`
`setAlgorithm(String algorithm)`
Allows the Pseudo Random Number Generator (PRNG) algorithm to be nominated.
`void`
`setSeed(org.springframework.core.io.Resource seed)`
Allows the user to specify a resource which will act as a seed for the `SecureRandom` instance.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SecureRandomFactoryBean

public SecureRandomFactoryBean()

## Method Details

### getObject

public SecureRandom getObject() throws Exception

Specified by:
  `getObject` in interface `org.springframework.beans.factory.FactoryBean<SecureRandom>`
Throws:
  `Exception`

### getObjectType

public Class<SecureRandom> getObjectType()

Specified by:
  `getObjectType` in interface `org.springframework.beans.factory.FactoryBean<SecureRandom>`

### isSingleton

public boolean isSingleton()

Specified by:
  `isSingleton` in interface `org.springframework.beans.factory.FactoryBean<SecureRandom>`

### setAlgorithm

public void setAlgorithm(String algorithm)
Allows the Pseudo Random Number Generator (PRNG) algorithm to be nominated. Defaults to "SHA1PRNG".

Parameters:
  `algorithm` - to use (mandatory)

### setSeed

public void setSeed(org.springframework.core.io.Resource seed)
Allows the user to specify a resource which will act as a seed for the `SecureRandom` instance. Specifically, the resource will be read into an `InputStream` and those bytes presented to the `SecureRandom.setSeed(byte[])` method. Note that this will simply supplement, rather than replace, the existing seed. As such, it is always safe to set a seed using this method (it never reduces randomness).

Parameters:
  `seed` - to use, or `null` if no additional seeding is needed