Web applications 是否可以从客户端访问web.xml?
我正在开发一个web应用程序,在Web applications 是否可以从客户端访问web.xml?,web-applications,spring-security,web.xml,Web Applications,Spring Security,Web.xml,我正在开发一个web应用程序,在web.xml中,我对身份验证过程有一些查询。因此,如果一个人看到这个查询,他可以很容易地访问这些安全表。是否可以访问我的web.xml,或者我根本不必担心 更具体地说,我在web.xml中介绍了我的安全配置,在该安全上下文文件中,我对身份验证进行了查询。以下是我正在谈论的部分(我正在使用Spring Security) 坏吗?我不应该用它吗? 请用一些参考资料来证明您的答案。 当然,请告诉我其他的选择 是否可以从客户端访问web.xml 没有。为什么?因
web.xml
中,我对身份验证过程有一些查询。因此,如果一个人看到这个查询,他可以很容易地访问这些安全表。是否可以访问我的web.xml
,或者我根本不必担心
更具体地说,我在
web.xml
中介绍了我的安全配置,在该安全上下文文件中,我对身份验证进行了查询。以下是我正在谈论的部分(我正在使用Spring Security)
坏吗?我不应该用它吗?
请用一些参考资料来证明您的答案。
当然,请告诉我其他的选择 是否可以从客户端访问web.xml 没有。为什么?因为根据协议,所有可访问的资源都是通过servlet公开的。如果您没有明确定义servlet(或过滤器或侦听器)来处理/公开.xml资源,那么您就不必担心了 一般来说,web容器负责保护配置资源。你可以相当肯定它会成功地做到这一点 您给出的示例代码不是web.xml,而是您的安全命名空间配置。这就像web.xml一样,也是您不应该担心的事情 一般来说,servlet容器不会使任何内容公开可访问,除非您明确告诉它 坏吗?我不应该用它吗 总的来说,不,不坏。您还可以得出结论,如果spring安全性在其配置中支持SQL,那么他们也会将其视为一种正常做法
但是,作为个人偏好,我倾向于使用自定义的
UserDetailsService
和AuthenticationManager
实现来处理用户身份验证,因为这样可以将数据库相关代码排除在安全定义之外。不过,这只是一种偏好。不错。。。你把我打昏了。谢谢但是对于最后一段,是否有一个很好的教程如何在Authentication Manager中使用我自己的自定义UserDetails服务
?到目前为止,我只学会了这个方法。只要看看UserDetailsService
上的spring安全文档就可以了。这也很有帮助:非常感谢@Simeon。“你是生命的救世主。”马丁克很高兴我能帮上忙:)
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider>
<sec:jdbc-user-service data-source-ref="dataSource"
group-authorities-by-username-query="
SELECT acg.ID, acg.GROUP_NAME, a.ROLE_NAME AS AUTHORITY
FROM USER_GROUP acg, USER_GROUP_MAPPING agm, PRINCIPAL_ROLE_MAPPING ga, ROLE a, INVESTOR_USER us
WHERE us.USERNAME = ? and agm.USER_ID = us.ID and acg.ID = ga.PRINCIPAL_ID and acg.ID = agm.USER_GROUP_ID and ga.ROLE_ID = a.ID
"
users-by-username-query="SELECT USERNAME,PASSWORD,IS_ACTIVE FROM INVESTOR_USER where USERNAME = ?"
authorities-by-username-query="
SELECT ua.PRINCIPAL_ID AS USERNAME, a.ROLE_NAME AS AUTHORITY
FROM PRINCIPAL_ROLE_MAPPING ua, ROLE a, INVESTOR_USER us
WHERE us.USERNAME = ? and ua.PRINCIPAL_ID = us.ID and ua.ROLE_ID = a.ID
" />
<sec:password-encoder ref="passwordEncoder"/>
<!-- <<<<<<<<<<<<<<<< Encoding Password >>>>>>>>>>>>>>>> -->
</sec:authentication-provider>
</sec:authentication-manager>