はじめに
ASTERIAではWebブラウザなどHTTPクライアントからURLにリクエストをおくることでフローを実行できるHTTP起動のフローを作成することができます。URL実行設定、URLトリガーとも呼ばれるようです。
HTTPから実行するフロー用の終了コンポーネント、HTTPEndコンポーネントを使うとHTTPレスポンスのCookieを設定できるようになっています。
オプションとして「domain」「expires」「path」属性は指定できるようですが、HttpOnly属性をつける方法について考えてみました。
環境
- OS:Windows Server 2012 R2
- ASTERIA WARP:1712
- Java:1.8.0_151
- Google Chrome:63.0.3239.132
フロー
HTTPStart -> Mapper -> HTTPEnd という単純なフローを作り、URL実行設定しておきます。
動作確認
基本動作の確認
Cookieにはひとまず何もセットしないでブラウザーから実行してみます。
Chromeのデベロッパーツールで確認してみます。
ASTERIA_FLOWSERVICE というシステム固有でセットされていると思われるCookieがありました。
オプションで指定できる属性の確認
適当なCookieを1つと「domain」「expires」「path」属性をつけてみました。
ブラウザーから実行してデベロッパーツールで確認してみます。
domainは一緒なのでしょうがないですが、pathとexpiresにはそれっぽい値がセットできていることを確認できました。
HttpOnly属性の確認
HttpOnly属性は値なしの属性のようでCookieプロパティではうまく設定できませんでした。
とkeyとvalueの組み合わせで値をセットする必要があるらしく、この状態で確認すると
となり、HttpOnly属性は効いてないようです。
値をセットしない場合でも
とCookieの名前としてセットされてしまうようです。
そこで追加するヘッダーで「Set-Cookie」というヘッダー名を直書きして値に;HttpOnly
と書く事でHttpOnly属性を有効にしてみました。
この書き方だとHttpOnly属性を有効にできるようです。
ただし、追加するヘッダーのヘッダー名は重複を許していないようなので、1つしか登録することができないようです。
おわりに
ブラウザーのデベロッパーツールで確認しましたが、さらにRestコンポーネントを使ってHTTPレスポンスのMIMEを確認するフローを作って確認してみると、
デベロッパーツールとMIMEの対比もできてわかりやすかったです。