我有一个Java EE应用程序(简单的Web GUI,一个大型EJB 3业务层,JPA),其大部分功能都依赖于当前登录的用户。
因此,EJB充斥着无所不在的String userName
参数。你几乎找不到一个没有它的非平凡方法,它一直下降到最基本的EJB。偶尔会有其他与会话相关的参数补充,例如用户的语言环境。
结果,参数列表增长,代码清晰度受到影响。这可能是一个常见的问题,如何避免它?将更多代码推送到GUI客户端似乎更加疯狂。
答案 0 :(得分:1)
Java EE支持跨各层的安全上下文传播。对于例如检查EJBContext上与身份验证/授权相关的各种方法,例如getCallerPrincipal()
,isCallerInRole()
。我建议你阅读以下两篇文章