【Grails (グレイルズ) 】 Spring Security Plugin。 アクセス失敗後の認証でエラーが発生する

例えば以下の順序でアクセスする。

  1. 未ログイン時に、Spring Securityのアクセス制限のあるページにダイレクトアクセス
  2. ログイン画面に戻される
  3. 正しいログイン情報でログインしたらエラー
  4. この時、内部では最初にアクセスしようとしたURLにリダイレクトして、そこのコントローラやサービスやらviewで処理失敗している

原因

Spring Security の設定で許可されていないアクションにアクセスした際にはログイン画面に戻る。そしてログインに成功するとトライした画面に戻るようになっている。
ログイン後の画面は以下のように設定されているはず。
Config.groovy

常に、ログイン時は上記の設定を使うように強制する。
Config.groovy

トライした画面に戻るのは、凄く親切な機能だが。

[JAVA] 文字列を区切って区切り文字も含める

“aabb:ccee:dfefs:efsfds:” という文字列があって、コロン(:) でsplit(“:”) すると

[aabb,ccee,dfefs,efsfds] という配列になってしまう。

区切った文字も区切った後の文字列に含めたい場合などは (?<=:) や、 (?=:) とする。

正規表現の、 (?<=:) はコロン(:)直前の所を指し、 正規表現の、 (?=:) はコロン(:)直後の所を指す。 これを利用して区切ると、コロン(:)も含めた形で区切る事が出来る。 さらに、この二つを or(|) にすると、コロン(:) 自体も文字として配列に収める事が出来る。

これの結果は、

となる。もちろんこのコロン(:) の代わりに、正規表現も使える。 コロン(:)に続いて数字が1~3回(多い方)がある場合に区切ると行った場合は、

これの結果は、

となる。