我参与了一个包含非常旧代码的java EE项目。它有自己的机制,用于从html表单进行身份验证和授权用户。现在我想使用
在Java EE登录机制中移植此机制<login-config>
<auth-method>FORM</auth-method>
<realm-name>Test Realm</realm-name>
<form-login-config>
<form-login-page>/logon.html?param=test</form-login-page>
<form-error-page>/logonError.html?param=test</form-error-page>
</form-login-config>
</login-config>
Jetty Document说,可以实现接口LoginModule
(可以使用
org.eclipse.jetty.jaas.spi.AbstractLoginModule
)并使用类JASSLoginService
配置Jetty,s.t。喜欢
<Set name="securityHandler">
<New class="org.eclipse.jetty.security.ConstraintSecurityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.jaas.JAASLoginService">
<Set name="name">Test JAAS Realm</Set>
<Set name="loginModuleName">xyz</Set>
</New>
</Set>
</New>
</Set>
由于我不想让应用程序过度配置,我的问题是,我可以只使用LoginModule
实现接口org.eclipse.jetty.security.LoginService
,而不是使用RelativePanel
。它直接在&#34; securityHandler&#34;?
环境:Java SE 8 / JavaEE7; Jetty 9.2.x; Windows Server
答案 0 :(得分:3)
你可以做任何一件事。如果要使用javaee标准身份验证机制,请配置JAASLoginService,然后指定LoginModule实现,由jetty提供或由您自己或第三方lib实现。如果您编写自己的LoginModule,那么它应该可以移植到任何servlet容器。
或者,您可以使用jetty特定的api进行身份验证,即LoginService,并插入我们现有的LoginServices之一,如HashLoginService,JDBCLoginService等,或者您可以改为编写自己的LoginService实现。当然,jetty LoginService不能移植到任何其他servlet容器。