《Spring Security3》第二章第二部分翻译(转载)
三步之内使我们的应用变得安全
尽管在Spring Security中注解并不普遍,但正如你所预料的那样,对类或方法进行的配置是可以通过注解来完成的。我们将在第五章:精确的访问控制中介绍。
添加Spring DelegatingFilterProxy到web.xml文件为了简便起见,本章的源码只包含了全部JBCPPets整个应用的很小一部分(只有一个页面)。我们这么做是为了更简洁,同时也能让构建和部署应用时不必考虑我们将在后续章节中涉及到的附加功能。这也提供了一个很好的起点让你快速的体验参数的配置并重新部署以查看它们是否生效。
注意这些不足之处?你可以看到用户名和密码在这个文件中。你不可能愿意为每一个系统的用户都在这个XML文件中添加一个声明。要解决这个问题,你需要使用一个基于数据库的认证提供者(authentication provider)来替代它(我们将第四章:凭证安全存储完成它)。
<!--[if !supportLists]-->l? <!--[endif]-->我们对所有的页面都进行了安全控制,包括一些潜在客户可能想匿名访问的界面。我们需要完善系统的角色以适应匿名的、认证过的以及管理权限的用户(这也将在第四章中讨论)。
<!--[if !supportLists]-->l? <!--[endif]-->登录界面非常应用,但是它太基础了而且与我们JBCP商店风格一点也不一致。我们需要添加一个登录的form界面,并与我们应用的外观和风格一致(我们将在下一章解决这个问题)。
常见问题???????? 很多用户在初次使用SpringSecurity时会遇到一些问题。我们列出了几个常见的问题和建议。我们希望你能够一直跟随着本书的讲解,运行我们示例代码。
<!--[if !supportLists]-->l? <!--[endif]-->确保你的应用在添加SpringSecurity之前是可以编译和部署的。必要的时候看一些你所使用的servlet容器的入门级例子和文档。
<!--[if !supportLists]-->l? <!--[endif]-->通常使用一个IDE如Eclipse会极大地简化你使用的servlet容器。不仅能够保证部署准确无误,它所提供的控制台日志也很易读可用来检查错误。你还可以在关键的位置添加断点,运行的时候会触发从而简化分析错误的过程。
<!--[if !supportLists]-->l? <!--[endif]-->如果你的XML配置文件不正确,你会得到这样的提示信息(或类似的):org.xml.sax.SAXParseException: cvc-elt.1: Cannot find thedeclaration of element 'beans'。为实现Spring Security的正确配置需要各种各样的XML命名空间引用,这可能会使很多用户感到迷惑。重新检查一下这个例子,仔细查看一下schame声明的部分,并使用XML校验器来保证你没有不合法的XML。
<!--[if !supportLists]-->l? <!--[endif]-->确保你所使用的Spring和SpringSecurity版本匹配,并确保没有你的应用中不存在没用的Spring jar包。