シナリオを説明するためだけにこのメソッドを作成しました。モデル オブジェクト内のユーザー ドメイン オブジェクトを評価したいと思います。
戻りオブジェクトとメソッド引数を評価できることはわかっています。しかし、モデルオブジェクトで試してみると、次のエラーが発生しました。**PostAuthorize / PreAuthorizeでモデルオブジェクトを使用することはできませんか? **
エラー
[リクエストの処理に失敗しました。ネストされた例外は java.lang.IllegalArgumentException: Failed to evaluate expression '#model.user.userName != 'ramesh''] 根本原因 org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 7): フィールドまたはプロパティタイプ「org.springframework.validation.support.BindingAwareModelMap」のオブジェクトに「ユーザー」が見つかりません
コード
@PostAuthorize("#model.user.userName != 'ramesh'")
@RequestMapping(value="/createusername", method = RequestMethod.GET)
public String getCreateUserNamePage(ModelMap model) {
User user = new User();
String username = SecurityContextHolder.getContext().getAuthentication().getName();
if(username!=null)
user = customUserDetailsService.getUserByUsername(username);
else
user.setUserName(username);
model.put("user", user);
return "createusername";
}