我是Spring Security的新手。我已经阅读了文档,我有两个问题,以便将它集成到我的webapp中:
(1)我使用Hibernate。通过实现UserDetailsService,访问Dao来配置身份验证提供程序的身份验证更好吗?
或者使用引用数据库连接并在user和user_roles表上指定查询的JDBC用户服务来配置它是否更好?
我认为使用Hibernate Dao更难,但它会是一个更加独立于数据库的解决方案,不是吗?
(2)在上述两种情况中(Hibernate vs JDBC),我是否必须在表示层实现登录和注销的方法?或者Spring Security框架会自动为它做什么?我知道我可以使用UserDetails来了解有关当前用户登录的信息,以便在视图中使用它,例如显示或不显示登录/注销的链接,具体取决于用户是否登录。但那些方法呢?
任何帮助都会受到赞赏。非常感谢你的进步。
答案 0 :(得分:0)
据我了解,实现UserDetailsService更适合用户自定义。如果您可以通过简单的查询获取数据,请使用JDBC-user-service。
您无需实施这些方法。 Spring将负责登录和注销,具体取决于您的配置。对于clogoff,你可以用' j_spring_security_logout'
包装链接<c:url value="/j_spring_security_logout"/>">
检查form-login元素以获取更多信息。样本如下。
<form-login login-page="/login.jsp"
default-target-url="/welcome.jsp"
always-use-default-target="true"
authentication-failure-url="/login.jsp?error=true" />