4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster/**
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster *
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * Copyright (c) 2009 Sun Microsystems Inc. All Rights Reserved
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster *
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * The contents of this file are subject to the terms
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * of the Common Development and Distribution License
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * (the License). You may not use this file except in
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * compliance with the License.
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster *
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * You can obtain a copy of the License at
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * opensso/legal/CDDLv1.0.txt
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * See the License for the specific language governing
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * permission and limitations under the License.
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster *
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * When distributing Covered Code, include this CDDL
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * Header Notice in each file and include the License file
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * at opensso/legal/CDDLv1.0.txt.
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * If applicable, add the following below the CDDL Header,
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * with the fields enclosed by brackets [] replaced by
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * your own identifying information:
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster *
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * $Id: RequestToken.java,v 1.2 2010/01/20 17:51:38 huacui Exp $
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster *
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster */
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Fosterpackage com.sun.identity.oauth.service.models;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Fosterimport com.sun.identity.oauth.service.PathDefs;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Fosterimport com.sun.identity.oauth.service.util.OAuthProperties;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Fosterimport java.util.Date;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster/**
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster * The OAuth request token
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster */
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Fosterpublic class RequestToken {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String id;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String reqtUri;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String reqtVal;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String reqtSecret;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String reqtPpalid;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private Date reqtLifetime;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private Consumer consumerId;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String callback;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String verifier;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private String etag;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster private static long lifeTime = 86400; // default life time in seconds
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster static {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster String lifeTimeStr = OAuthProperties.get(PathDefs.REQUEST_TOKEN_LIFETIME);
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster if (lifeTimeStr != null) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster try {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster lifeTime = Long.parseLong(lifeTimeStr);
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster } catch (NumberFormatException nfe) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster lifeTime = 86400;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public RequestToken() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster setReqtLifetime(new Date(System.currentTimeMillis() + lifeTime * 1000));
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getId() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return id;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setId(String id) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.id = id;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getReqtUri() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return reqtUri;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setReqtUri(String reqtUri) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.reqtUri = reqtUri;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getReqtVal() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return reqtVal;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setReqtVal(String reqtVal) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.reqtVal = reqtVal;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getReqtSecret() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return reqtSecret;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setReqtSecret(String reqtSecret) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.reqtSecret = reqtSecret;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getReqtPpalid() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return reqtPpalid;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setReqtPpalid(String reqtPpalid) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.reqtPpalid = reqtPpalid;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public Date getReqtLifetime() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return reqtLifetime;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setReqtLifetime(Date reqtLifetime) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.reqtLifetime = reqtLifetime;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public Consumer getConsumerId() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return consumerId;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setConsumerId(Consumer consumerId) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.consumerId = consumerId;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getCallback() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return callback;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setCallback(String callback) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.callback = callback;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getVerifier() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return verifier;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setVerifier(String verifier) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.verifier = verifier;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String getEtag() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return etag;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public void setEtag(String etag) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster this.etag = etag;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster @Override
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public int hashCode() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster int hash = 0;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster hash += (id != null ? id.hashCode() : 0);
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return hash;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster @Override
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public boolean equals(Object object) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster if (!(object instanceof RequestToken)) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return false;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster RequestToken other = (RequestToken) object;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster if ((this.id == null && other.id != null) ||
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster (this.id != null && !this.id.equals(other.id))) {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return false;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return true;
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster @Override
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster public String toString() {
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster return "com.sun.identity.oauth.service.models.RequestToken[id=" + id + "]";
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster }
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster
4d6be67a34a8652a5fb6e2c2d9f57387e2a686c4Allan Foster}