Tag: spring security

在Spring MVC / Security中设置和读取cookie

我是Spring新手,我需要在单击“登录”按钮时设置自定义cookie,然后该cookie将在webapp中变为红色。 这样做的最佳做法是什么? 此外,这带来了如何在webapp的每个页面上阅读它的问题? 我以为我可以用JavaScript设置cookie,稍后通过自定义filter读取它(它会从请求中读取cookie,将其设置为属性并将其发送给控制器。 这个想法是否正确? 或者我应该在其他地方设置cookie(如果是这样,为什么?) 更新1: 我想要实现的目标:我在登录页面上有下拉框(语言选择器),它有一些值(语言代码,例如“en”),所选值需要设置为cookie(例如“lang”)和对于i18n,“lang”cookie将在页面上显示为红色。 我已经让i18n工作了,但我需要阅读“lang”cookie来设置所选语言。 更新2: 我做了我想做的事,但它并不完全干净: 我通过Javascript或jQuery设置cookie,确切地说,当用户选择或更改的选择时,Javascript会将语言值注入cookie(例如en): HTML: English JS: var cookie = { set: function($this) { var now = new Date(); var time = now.getTime(); var expireTime = time + 1000*36000; now.setTime(expireTime); document.cookie = ‘lang=’ + $this.val() +’;expires=’+now.toGMTString()+’;path=/’; } } $(‘#selectLanguage’).change(function(event) { cookie.set($(this)); }); 然后我创建了一个名为CookieFilter.java的新Filer : public class CookieFilter […]

尝试上传时无效的CSRF令牌Spring 4 MVC

我试图使用Spring MVC 4上传一个带有Web应用程序的文件,但是我收到一个错误: 在请求参数’_csrf’或标题’X-CSRF-TOKEN’上找到无效的CSRF令牌’null’。 春季版: Spring Version 4.1.7.RELEASE Spring Security 4.0.1.RELEASE 码: web.xml中 FATCA Web Application contextConfigLocation /WEB-INF/spring-web-servlet.xml spring-web org.springframework.web.servlet.DispatcherServlet 1 spring-web *.html 弹簧网络servlet.xml中 /WEB-INF/views/ .jsp Settings.jsp <input type="submit" value= /> 在提交包含字符串“Test”的名为test.txt的文件后发布请求有效内容: Content-Type: multipart/form-data; boundary=—————————83935555814334632461054528816 Content-Length: 368 —————————–83935555814334632461054528816 Content-Disposition: form-data; name=”file”; filename=”test.txt” Content-Type: text/plain Test —————————–83935555814334632461054528816 Content-Disposition: form-data; name=”_csrf” 41f3dc0a-b97f-4dac-bc49-21e02be53818 —————————–83935555814334632461054528816–

Spring MVC控制器inheritanceSpring安全性

我正在尝试使用spring mvc 3.2.3和spring security 3.1.3创建一个通用控制器。 我想要实现的是这样的: public abstract class DataController { protected abstract E getEntity(String id); @RequestMapping(value=”/view/{id}”, method=RequestMethod.GET) public String view(@PathVariable(“id”) String id, ModelMap map) { E ent = getEntity(id); map.put(“entity”, entity); return “showEntity”; } } 我的扩展类将在类名中有一个特定的控制器映射,以便我可以使用控制器名称访问该URL: @Controller @RequestMapping(“/company**”) @Secured(“ROLE_ADMIN”) public class CompaniesController extends DataController { @Autowired private AppService appService; @Override protected Company getEntity(String id) […]

春季启动。 HMAC认证。 如何添加自定义AuthenticationProvider和身份validationfilter?

为了实现HMAC身份validation,我创建了自己的filter,提供者和令牌。 RestSecurityFilter: public class RestSecurityFilter extends AbstractAuthenticationProcessingFilter { private final Logger LOG = LoggerFactory.getLogger(RestSecurityFilter.class); private AuthenticationManager authenticationManager; public RestSecurityFilter(String defaultFilterProcessesUrl) { super(defaultFilterProcessesUrl); } public RestSecurityFilter(RequestMatcher requiresAuthenticationRequestMatcher) { super(requiresAuthenticationRequestMatcher); } @Override public Authentication attemptAuthentication(HttpServletRequest req, HttpServletResponse response) throws AuthenticationException, IOException, ServletException { AuthenticationRequestWrapper request = new AuthenticationRequestWrapper(req); // Get authorization headers String signature = request.getHeader(“Signature”); String […]

Spring Security:允许所有经过完全身份validation的用户的页面查看,除非他们具有特定角色

我正在使用带有Spring Security的Spring 3.0.3。 所以,我对我正在制作的应用程序有相当宽松的限制。 我只想确保一个人可以登录并进行身份validation,以便查看该应用程序。 我不想为这个应用程序的每个潜在用户授予角色(可能是成千上万的)。 所以,使用起来很好: 但是现在我希望能够限制人们在需要时使用应用程序,所以我创建了一个名为ROLE_BANNED的角色,希望我能够为那些有问题的人分配角色。 那么,现在我正在尝试这个: 这似乎最初起作用,但它无法加载我拒绝的页面。 我认为它限制了对被拒绝页面的访问。 我无法通过控制器加载被拒绝的页面或作为WEB-INF中的jsp加载。 有人可以告诉我如何允许经过身份validation的用户访问我的所有应用并将具有特定角色(ROLE_BANNED)的人员发送到被拒绝的页面吗? 编辑这是我的全部安全:http设置: 我已经尝试使用控制器映射被拒绝页面(/被拒绝),jsp页面(/denied.jsp)甚至是一个简单的html页面(/denied.html),但我得到了每个单独的一个404。 发生这种情况时,我在日志文件中看不到任何内容。

使用Spring对安全性使用LDAP进行身份validation

我正在尝试使用spring-security来获取Java应用程序,以便与我设置的本地ADAM实例进行通信。 我已成功安装ADAM并设置如下…. 在localhost上运行的实例:389 根是O=Company 一个叫OU=Company Users (orgnizationalUnit)的孩子 一个名为CN=Mike Q (用户)的granchild uid = mike和password = welcome 然后我设置了spring-security(版本3.0.3,spring-framework 3.0.4和spring-ldap 1.3.0)。 spring文件 和TestAuthentication public class TestAuthentication { @Autowired private AuthenticationManager authenticationManager; public void initialise() { Authentication authentication = new UsernamePasswordAuthenticationToken( “mike”, “welcome” ); Authentication reponseAuthentication = authenticationManager.authenticate( authentication ); } } 运行这个我得到以下错误 Caused by: javax.naming.AuthenticationException: [LDAP: error code […]

如何在struts2上应用Spring安全性

我已经阅读了各种教程和论坛,但没有找到组合Spring安全性和struts2的工作示例来研究编码。 大多数当前示例都使用XML文件中的预定义用户名和密码,但未连接到数据库。 样品1 样品2 样品3 如果您知道任何示例或教程,请告诉我。

Acegi / Spring安全性是否支持getUserPrincipal()?

我需要使用Acegi / Spring安全性连接现有应用程序。 为了开始,我正在寻找一个简单的信息:在这个上下文中,从我的应用程序调用的HttpServletRequest.getUserPrincipal()是否正确返回通过Spring获得的用户名(而不是使用特定于Spring的对象)? 我在Google上搜索了相互矛盾的信息。 我假设如果使用filter实现Acegi,它可以重载Servlet API的getUserPrincipal(),对吗? 附属问题:如果默认不是这种情况,有没有办法打开它? 谢谢, -Erik

使用AcceptHeaderLocaleResolver和i18n的Spring Security

我卡住了,可能在文档中遗漏了一些东西或犯了一些小错误。 Spring Security 3.0.5集成在我的Spring MVC 3.0.5应用程序中。 AcceptHeaderLocaleResolver用于区域设置检测和本地化工作正常,但安全性错误消息除外。 我从spring安全包复制了messages.properties并重命名并添加到带有值列表的现有“messageSource”bean(ResourceBundleMessageSource) 。 如前所述,所有文本和消息都已正确本地化,除了安全接缝以使用硬编码的英语消息。 任何想法如何解决这个问题? 更新: 我的xy-servlet.xml包含: … … defaultMessages securityMessages 和文件 defaultMessages.properties defaultMessages_en.properties defaultMessages_de.properties defaultMessages_sl.properties 和 securityMessages.properties securityMessages_en.properties securityMessages_de.properties securityMessages_sl.properties 但defaultMessages工作正常。 securityMessages没有。 我对所有securityMessages文件进行了小的更改,但忽略它们并显示硬编码的英语消息。 更新v2:我的dispatcher-servlet.xml: defaultMessages securityMessages org/springframework/security/messages_de

如何确定使用Spring Security访问URL所需的角色?

我正在使用Spring Security来保护webapp。 URL是这样保护的: … 我有一个filter,在某些情况下需要将用户重定向到特殊页面。 但是,该页面需要资产目录中的图像和CSS文件,遗憾的是,这些文件也会被重定向到该特殊页面。 我不希望filter手动检查每个URL模式,因为我的实际URL配置要长得多,而且我还想允许其他页面。 有没有办法从filter中确定给定页面需要哪些角色? 如果不需要ROLE_ANONYMOUS,我可以选择不重定向。