001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.plugin.token;
017
018 import java.util.Dictionary;
019 import java.util.Hashtable;
020
021 import org.opengion.hayabusa.common.HybsSystem;
022 import org.opengion.hayabusa.html.AbstractCreateToken;
023 import org.opengion.fukurou.util.StringUtil;
024 import com.akamai.token_v2.*;
025
026 // import com.akamai.authentication.URLToken.URLTokenFactory;
027
028 /**
029 * アカマイのト?クンを付加するためのプラグインです?
030 *
031 * 以下?シス?リソース設定を行う事でパラメータの変更が可能です?
032 * AKAMAI_TOKEN_NAME:ト?クン名称(初期値?akminame)
033 * AKAMAI_ENCRYPTION:ト?クン作?時暗号化キー(初期値?enckey)
034 *
035 * こ?プラグイン利用にはcom.akamai.token_v2.*;が?です?
036 *
037 * @og.group 画面表示
038 * @og.rev 5.8.2.2 (2014/12/19)
039 *
040 * @version 5.0
041 * @author Takahashi Masakazu
042 * @since JDK5.0,
043 */
044 public class CreateToken_Akamai extends AbstractCreateToken {
045 //* こ?プログラ??VERSION??を設定します? {@value} */
046 private static final String VERSION = "5.8.2.1 (2014/12/13)" ;
047
048 private static final String AKAMAI_TOKEN_NAME = StringUtil.nval(HybsSystem.sys( "AKAMAI_TOKEN_NAME" ),"akminame");
049 private static final String AKAMAI_ENCRYPTION = StringUtil.nval(HybsSystem.sys( "AKAMAI_ENCRYPTION" ),"enckey");
050
051 // private static final URLTokenFactory fact = new URLTokenFactory();
052 private Dictionary token_config;
053
054
055 /**
056 * アカマイのト?クンを付けたURLを返します?
057 *
058 *
059 * @return URL
060 */
061 @Override
062 public String generateURL( final String inURL, final long time, final String user, final String[] param ){
063 long wn = ( time - System.currentTimeMillis() ) /1000;
064 // return fact.generateURL(inURL, null, wn , AKAMAI_SALT, System.currentTimeMillis());
065
066 token_config = new Hashtable();
067 token_config.put("token_name", new String( AKAMAI_TOKEN_NAME ));
068 token_config.put("key", new String( AKAMAI_ENCRYPTION ));
069 token_config.put("window_seconds", new String( Long.toString( wn ) ));
070 token_config.put("url", new String( inURL ));
071 try{
072 String tkn = AkamaiToken.generateToken( token_config );
073
074 return tkn;
075 }
076 catch( Exception ex ){
077 ex.printStackTrace();
078 return inURL;
079 }
080 }
081
082 }