com.github.ulisesbocchio.spring.boot.security.saml.resource.SpringResourceWrapperOpenSAMLResource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-boot-security-saml Show documentation
Show all versions of spring-boot-security-saml Show documentation
Eases Integration between Spring Boot and spring-security-saml through properties and adapters
The newest version!
package com.github.ulisesbocchio.spring.boot.security.saml.resource;
import lombok.SneakyThrows;
import org.joda.time.DateTime;
import org.opensaml.util.resource.ResourceException;
import org.springframework.core.io.Resource;
import java.io.IOException;
import java.io.InputStream;
/**
* Spring <-- OpenSAML resource adapter. It allows the use of Spring {@link Resource}s as an Open SAML {@link org.opensaml.util.resource.Resource}.
* The implementation simply delegates all method calls to the Spring resource.
*
* @author Ulises Bocchio
*/
public class SpringResourceWrapperOpenSAMLResource implements org.opensaml.util.resource.Resource {
private Resource springDelegate;
public SpringResourceWrapperOpenSAMLResource(Resource springDelegate) throws ResourceException {
this.springDelegate = springDelegate;
if (!exists()) {
throw new ResourceException("Wrapper resource does not exist: " + springDelegate);
}
}
@Override
@SneakyThrows
public String getLocation() {
return springDelegate.getURL().toString();
}
@Override
public boolean exists() throws ResourceException {
return springDelegate.exists();
}
@Override
public InputStream getInputStream() throws ResourceException {
try {
return springDelegate.getInputStream();
} catch (IOException e) {
throw new ResourceException(e);
}
}
@Override
public DateTime getLastModifiedTime() throws ResourceException {
try {
return new DateTime(springDelegate.lastModified());
} catch (IOException e) {
throw new ResourceException(e);
}
}
@Override
public int hashCode() {
return getLocation().hashCode();
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o instanceof SpringResourceWrapperOpenSAMLResource) {
return getLocation().equals(((SpringResourceWrapperOpenSAMLResource) o).getLocation());
}
return false;
}
}