info.dragonlady.scriptlet
クラス SecureServlet

java.lang.Object
  上位を拡張 javax.servlet.GenericServlet
      上位を拡張 javax.servlet.http.HttpServlet
          上位を拡張 info.dragonlady.scriptlet.SecureServlet
すべての実装されたインタフェース:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class SecureServlet
extends javax.servlet.http.HttpServlet

処理シーケンスの妥当性検証を実装した、javax.servlet.http.HttpServletの継承クラスです。 Scriptletクラスの基底クラスで、このクラスを直接継承することはありません。

作成者:
nobu
関連項目:
直列化された形式

フィールドの概要
protected  java.lang.String charset
           
protected  java.lang.String contentType
           
static int CONTEXT_ACCESS_SEQUENCE
           
static int CORRECT_SEQUENCE
           
protected  DBAccesser dbaccesser
           
protected  java.lang.String dbConfigPath
           
protected  java.lang.String defaultScriptClassName
           
protected  java.lang.String extendName
           
static int IGNORE_SEQUENCE
           
static int INVALID_SEQUENCE
           
protected  java.lang.String scriptletPath
           
protected static java.lang.String SEQUENCE_KEY
           
protected  int sequenceId
           
protected static java.lang.String SITEMAP_KEY
           
protected  java.lang.String sitemapPath
           
protected  org.w3c.dom.Document sitemapXML
           
static java.lang.String WILD_CARD_SEQUENCE
           
 
コンストラクタの概要
SecureServlet()
           
 
メソッドの概要
protected  Scriptlet buildScriptlet()
          Scriptletを解決します。
protected  boolean checkSitemap(java.lang.String sessionSeqVal, java.lang.String sequenceValue)
          サイトマップXMLにてシーケンスの検証を行なう
protected  java.lang.String getCharSet()
          HttpServletResponse#setContentTypeに指定する、
CharSetの値を応答します。
protected  java.lang.String getContentType()
          HttpServletResponse#setContentTypeに指定する、
ContentTypeの値を応答します。
 DBAccesser getDBAccessObject()
           
protected  java.lang.String getFingerprintForSequence()
          遷移画面でのシーケンス検証のため自分自身のフィンガープリントを作成する。
 java.lang.String getInitSequence()
          初期シーケンス(Scriptlet)のverifySequence()にて、 チェックする文字列を応答する。
protected  java.lang.String getRelativePath()
          相対パスを取得する。
 javax.servlet.http.HttpServletRequest getRequest()
          HttpServletRequestクラスのインスタンスを応答します。
 javax.servlet.http.HttpServletResponse getResponse()
          HttpServletResponseクラスのインスタンスを応答します。
 java.lang.String getScriptExtName()
          設定ファイルに指定した、スクリプトレットの拡張子を応答する。
 java.lang.String getScriptletPath()
          スクリプトレットのパスを取得します。
protected  java.lang.String getSequence()
          現在設定されているシーケンスオブジェクトを取得する関数
 javax.servlet.http.HttpSession getSession()
          HttpSessionクラスのインスタンスを応答します。
protected  void initialize()
           
protected  void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
          HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
 void setCharSet(java.lang.String code)
          文字コードを変更します。
 void setContentType(java.lang.String type)
          コンテントタイプを変更します。
protected  void setSequence()
          次のシーケンスに移行した際、正しいシーケンスであるためのフィンガープリントを設定します。
protected  void setupDBObject()
           
protected  void setupSiteMap()
          サイトマップXMLを解析します。
 boolean useDBObject()
          DBアクセスオブジェクトが利用可能か検証する。
protected  int verifySequence()
          正当なシーケンスで要求されているか検証します。
 
クラス javax.servlet.http.HttpServlet から継承されたメソッド
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
 
クラス javax.servlet.GenericServlet から継承されたメソッド
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

SEQUENCE_KEY

protected static final java.lang.String SEQUENCE_KEY
関連項目:
定数フィールド値

SITEMAP_KEY

protected static final java.lang.String SITEMAP_KEY
関連項目:
定数フィールド値

sequenceId

protected int sequenceId

charset

protected java.lang.String charset

contentType

protected java.lang.String contentType

scriptletPath

protected java.lang.String scriptletPath

sitemapPath

protected java.lang.String sitemapPath

dbConfigPath

protected java.lang.String dbConfigPath

sitemapXML

protected org.w3c.dom.Document sitemapXML

defaultScriptClassName

protected java.lang.String defaultScriptClassName

dbaccesser

protected DBAccesser dbaccesser

extendName

protected java.lang.String extendName

CORRECT_SEQUENCE

public static final int CORRECT_SEQUENCE
関連項目:
定数フィールド値

CONTEXT_ACCESS_SEQUENCE

public static final int CONTEXT_ACCESS_SEQUENCE
関連項目:
定数フィールド値

IGNORE_SEQUENCE

public static final int IGNORE_SEQUENCE
関連項目:
定数フィールド値

INVALID_SEQUENCE

public static final int INVALID_SEQUENCE
関連項目:
定数フィールド値

WILD_CARD_SEQUENCE

public static final java.lang.String WILD_CARD_SEQUENCE
関連項目:
定数フィールド値
コンストラクタの詳細

SecureServlet

public SecureServlet()
メソッドの詳細

setupSiteMap

protected void setupSiteMap()
                     throws SystemErrorException
サイトマップXMLを解析します。

例外:
SystemErrorException

setupDBObject

protected void setupDBObject()
                      throws SystemErrorException
例外:
SystemErrorException

useDBObject

public boolean useDBObject()
DBアクセスオブジェクトが利用可能か検証する。

戻り値:

getDBAccessObject

public DBAccesser getDBAccessObject()

initialize

protected void initialize()
                   throws IllegalAccessException,
                          SystemErrorException
例外:
IllegalAccessException
SystemErrorException

buildScriptlet

protected Scriptlet buildScriptlet()
                            throws SystemErrorException,
                                   java.lang.ClassNotFoundException,
                                   java.lang.InstantiationException,
                                   java.lang.IllegalAccessException
Scriptletを解決します。

戻り値:
例外:
SystemErrorException
java.lang.ClassNotFoundException
IllegalAccessException
java.lang.InstantiationException
java.lang.IllegalAccessException

service

protected final void service(javax.servlet.http.HttpServletRequest req,
                             javax.servlet.http.HttpServletResponse res)
                      throws java.io.IOException,
                             javax.servlet.ServletException
HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)

オーバーライド:
クラス javax.servlet.http.HttpServlet 内の service
例外:
java.io.IOException
javax.servlet.ServletException

checkSitemap

protected boolean checkSitemap(java.lang.String sessionSeqVal,
                               java.lang.String sequenceValue)
サイトマップXMLにてシーケンスの検証を行なう

パラメータ:
sessionSeqVal -
sequenceValue -
戻り値:

verifySequence

protected int verifySequence()
                      throws IllegalAccessException
正当なシーケンスで要求されているか検証します。 デフォルト実装では、初期状態か処理系かの判別しか行いません。 シーケンスを拡張する場合、オーバーライドして実装してください。

パラメータ:
servlet -
戻り値:
例外:
IllegalAccessException

setSequence

protected void setSequence()
次のシーケンスに移行した際、正しいシーケンスであるためのフィンガープリントを設定します。 デフォルトでは、クラス名+serialVersionUIDをセッションに追加する。

パラメータ:
servlet -

getSequence

protected java.lang.String getSequence()
現在設定されているシーケンスオブジェクトを取得する関数


getFingerprintForSequence

protected java.lang.String getFingerprintForSequence()
遷移画面でのシーケンス検証のため自分自身のフィンガープリントを作成する。

戻り値:

getRelativePath

protected java.lang.String getRelativePath()
相対パスを取得する。

戻り値:

getInitSequence

public java.lang.String getInitSequence()
                                 throws IllegalAccessException
初期シーケンス(Scriptlet)のverifySequence()にて、 チェックする文字列を応答する。

戻り値:
例外:
IllegalAccessException

getSession

public javax.servlet.http.HttpSession getSession()
HttpSessionクラスのインスタンスを応答します。


getRequest

public javax.servlet.http.HttpServletRequest getRequest()
HttpServletRequestクラスのインスタンスを応答します。


getResponse

public javax.servlet.http.HttpServletResponse getResponse()
HttpServletResponseクラスのインスタンスを応答します。


getCharSet

protected java.lang.String getCharSet()
HttpServletResponse#setContentTypeに指定する、
CharSetの値を応答します。
デフォルトはShift-jisです。変更したい場合はオーバーライド


setCharSet

public void setCharSet(java.lang.String code)
文字コードを変更します。

パラメータ:
code -

getScriptletPath

public java.lang.String getScriptletPath()
スクリプトレットのパスを取得します。 オーバーライドすることで、任意のパス構成を構築できます。 例)getScriptletPath(String any)でオーバーロードしてanyをsuper#getScriptletPathに付加する

戻り値:

getContentType

protected java.lang.String getContentType()
HttpServletResponse#setContentTypeに指定する、
ContentTypeの値を応答します。
デフォルトはtext/htmlです。変更したい場合はオーバーライド


setContentType

public void setContentType(java.lang.String type)
コンテントタイプを変更します。(デフォルトはtext/html)

パラメータ:
type -

getScriptExtName

public java.lang.String getScriptExtName()
設定ファイルに指定した、スクリプトレットの拡張子を応答する。

戻り値: