org.apache.wss4j.common.saml.bean.AuthDecisionStatementBean Maven / Gradle / Ivy
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.wss4j.common.saml.bean;
import java.util.List;
import java.util.ArrayList;
/**
* Class SamlDecision represents the raw data to be used by the SamlAssertionWrapper
when
* creating SAML Authorization Decision Statements.
*/
public class AuthDecisionStatementBean {
/**
* The SAML subject
*/
private SubjectBean subject;
/**
* enum representing the possible decision types as specified in the SAML spec
*/
public enum Decision { PERMIT, INDETERMINATE, DENY }
/**
* The decision rendered by the SAML authority with respect to the specified resource
*/
private Decision decision;
/**
* A URI reference identifying the resource to which access authorization is sought
*/
private String resource;
/**
* The set of actions authorized to be performed on the specified resource (one or more)
*/
private List actionBeans;
/**
* A set of assertions that the SAML authority relied on in making the decision (optional)
*/
private Object evidence;
/**
* Constructor SamlDecision creates a new SamlDecision instance.
*/
public AuthDecisionStatementBean() {
actionBeans = new ArrayList<>();
}
/**
* Constructor SamlDecision creates a new SamlDecision instance.
*
* @param decision of type Decision
* @param resource of type String
* @param subject of type SubjectBean
* @param evidence of type Object
* @param actionBeans of type List
*/
public AuthDecisionStatementBean(
Decision decision,
String resource,
SubjectBean subject,
Object evidence,
List actionBeans
) {
this.decision = decision;
this.resource = resource;
this.subject = subject;
this.evidence = evidence;
this.actionBeans = actionBeans;
}
/**
* Method getResource returns the resource of this SamlDecision object.
*
* @return the resource (type String) of this SamlDecision object.
*/
public String getResource() {
return resource;
}
/**
* Method setResource sets the resource of this SamlDecision object.
*
* @param resource the resource of this SamlDecision object.
*/
public void setResource(String resource) {
this.resource = resource;
}
/**
* Method getActions returns the actions of this SamlDecision object.
*
* @return the actions (type List) of this SamlDecision object.
*/
public List getActions() {
return actionBeans;
}
/**
* Method setActions sets the actions of this SamlDecision object.
*
* @param actionBeans the actions of this SamlDecision object.
*/
public void setActions(List actionBeans) {
this.actionBeans = actionBeans;
}
/**
* Method getDecision returns the decision of this SamlDecision object.
*
* @return the decision (type Decision) of this SamlDecision object.
*/
public Decision getDecision() {
return decision;
}
/**
* Method setDecision sets the decision of this SamlDecision object.
*
* @param decision the decision of this SamlDecision object.
*/
public void setDecision(Decision decision) {
this.decision = decision;
}
/**
* Method getEvidence returns the evidence of this SamlDecision object.
*
* @return the evidence (type Object) of this SamlDecision object.
*/
public Object getEvidence() {
return evidence;
}
/**
* Method setEvidence sets the evidence of this SamlDecision object.
*
* @param evidence the evidence of this SamlDecision object.
*/
public void setEvidence(Object evidence) {
this.evidence = evidence;
}
/**
* Get the Subject
* @return the Subject
*/
public SubjectBean getSubject() {
return subject;
}
/**
* Set the Subject
* @param subject the SubjectBean instance to set
*/
public void setSubject(SubjectBean subject) {
this.subject = subject;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof AuthDecisionStatementBean)) {
return false;
}
AuthDecisionStatementBean that = (AuthDecisionStatementBean) o;
if (subject == null && that.subject != null) {
return false;
} else if (subject != null && !subject.equals(that.subject)) {
return false;
}
if (decision == null && that.decision != null) {
return false;
} else if (decision != null && !decision.equals(that.decision)) {
return false;
}
if (evidence == null && that.evidence != null) {
return false;
} else if (evidence != null && !evidence.equals(that.evidence)) {
return false;
}
if (actionBeans == null && that.actionBeans != null) {
return false;
} else if (actionBeans != null && !actionBeans.equals(that.actionBeans)) {
return false;
}
if (resource == null && that.resource != null) {
return false;
} else if (resource != null && !resource.equals(that.resource)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = subject != null ? subject.hashCode() : 0;
result = 31 * result + (decision != null ? decision.hashCode() : 0);
result = 31 * result + (evidence != null ? evidence.hashCode() : 0);
result = 31 * result + (actionBeans != null ? actionBeans.hashCode() : 0);
result = 31 * result + (resource != null ? resource.hashCode() : 0);
return result;
}
}