Questions tagged «spring-security»

Spring Security是Spring Framework的应用程序安全解决方案。Spring安全性可用于保护URL和方法调用。它被广泛用于保护独立的Web应用程序,Portlet和越来越多的REST应用程序。

12
如何管理Spring中过滤器中引发的异常?
我想使用通用的方式来管理5xx错误代码,特别是当整个Spring应用程序中的db关闭时。我想要一个漂亮的错误json而不是堆栈跟踪。 对于控制器,我有一个@ControllerAdvice针对不同异常的类,这也捕获了db在请求中间停止的情况。但这并不是全部。我也碰巧有一个自定义CorsFilter扩展名OncePerRequestFilter,在那里,当我打电话给doFilter我时CannotGetJdbcConnectionException,它将不受的管理@ControllerAdvice。我在网上阅读了几件事,这只会让我更加困惑。 所以我有很多问题: 我是否需要实施自定义过滤器?我找到了,ExceptionTranslationFilter但这只能处理AuthenticationException或AccessDeniedException。 我想实现自己的实现HandlerExceptionResolver,但这使我感到怀疑,我没有任何自定义异常要管理,必须有比这更明显的方法。我还尝试添加一个try / catch并调用的实现HandlerExceptionResolver(应该足够好,我的例外没有什么特别的),但这在响应中不返回任何内容,我得到一个状态200和一个空主体。 有什么好办法解决这个问题吗?谢谢


7
没有会话时如何使用Spring Security?
我正在使用Spring Security构建一个Web应用程序,该应用程序将驻留在Amazon EC2上并使用Amazon的Elastic Load Balancer。不幸的是,ELB不支持粘性会话,因此我需要确保我的应用程序无需会话即可正常运行。 到目前为止,我已经设置了RememberMeServices来通过cookie分配令牌,并且可以正常工作,但是我希望cookie在浏览器会话中过期(例如,当浏览器关闭时)。 我必须想象我不是第一个不想在没有会话的情况下使用Spring Security的人...有什么建议吗?

11
使用@ExceptionHandler处理Spring Security身份验证异常
我正在使用Spring MVC @ControllerAdvice并@ExceptionHandler处理REST Api的所有异常。对于Web mvc控制器抛出的异常,它工作正常,但对于Spring Security自定义过滤器抛出的异常,它不工作,因为它们在调用控制器方法之前运行。 我有一个自定义的spring安全过滤器,它执行基于令牌的身份验证: public class AegisAuthenticationFilter extends GenericFilterBean { ... public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { try { ... } catch(AuthenticationException authenticationException) { SecurityContextHolder.clearContext(); authenticationEntryPoint.commence(request, response, authenticationException); } } } 使用此自定义入口点: @Component("restAuthenticationEntryPoint") public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint{ public void commence(HttpServletRequest …

6
如何启用Spring Security的日志记录?
我正在设置Spring Security来处理登录用户。我已经以用户身份登录,并且在成功登录后进入“拒绝访问”错误页面。我不知道实际上为用户分配了哪些角色,或者不知道导致访问被拒绝的规则,因为我不知道如何为Spring Security库启用调试。 我的安全性xml: <?xml version="1.0" encoding="UTF-8"?> <beans ... > <!-- security --> <security:debug/><!-- doesn't seem to be working --> <security:http auto-config="true"> <security:intercept-url pattern="/Admin**" access="hasRole('PROGRAMMER') or hasRole('ADMIN')"/> <security:form-login login-page="/Load.do" default-target-url="/Admin.do?m=loadAdminMain" authentication-failure-url="/Load.do?error=true" username-parameter="j_username" password-parameter="j_password" login-processing-url="/j_spring_security_check"/> <security:csrf/><!-- enable Cross Site Request Forgery protection --> </security:http> <security:authentication-manager> <security:authentication-provider> <security:jdbc-user-service data-source-ref="loginDataSource" users-by-username-query="SELECT username, password, …

19
Spring Boot Security禁用安全性
当我使用security.basic.enabled = false禁用具有以下依赖关系的Spring Boot项目上的安全性时: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 我看到以下异常: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.actuate.autoconfigure.ManagementSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire …

3
如何创建用于Spring安全性表达语言注释的自定义方法
我想创建一个类,该类添加用于Spring安全表达语言的自定义方法,以通过注释进行基于方法的授权。 例如,我想创建一个自定义方法,例如“ customMethodReturningBoolean”,以这种方式使用: @PreAuthorize("customMethodReturningBoolean()") public void myMethodToSecure() { // whatever } 我的问题是这个。如果可能的话,我应该子类化什么类来创建我的自定义方法,我该如何在spring xml配置文件中对其进行配置,然后有人给我一个以这​​种方式使用的自定义方法的示例?

11
在请求参数'_csrf'或标头'X-CSRF-TOKEN'上发现无效的CSRF令牌'null'
配置Spring Security 3.2之后,_csrf.token未绑定到请求或会话对象。 这是spring安全配置: <http pattern="/login.jsp" security="none"/> <http> <intercept-url pattern="/**" access="ROLE_USER"/> <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=1" default-target-url="/index.jsp"/> <logout/> <csrf /> </http> <authentication-manager> <authentication-provider> <user-service> <user name="test" password="test" authorities="ROLE_USER/> </user-service> </authentication-provider> </authentication-manager> login.jsp文件 <form name="f" action="${contextPath}/j_spring_security_check" method="post" > <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /> <button id="ingresarButton" name="submit" type="submit" class="right" style="margin-right: 10px;">Ingresar</button> <span> <label for="usuario">Usuario …

6
如何在Spring Security中禁用'X-Frame-Options'响应头?
我在jsp上安装了CKeditor,并且每当我上传一些内容时,就会弹出以下错误: Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'. 我尝试过删除Spring Security,并且一切正常。如何在Spring Security xml文件中禁用此功能?<http>标签之间应该写些什么

8
如何在春季获得会话对象?
我对Spring和Spring安全性比较陌生。 我试图编写一个程序,需要使用Spring安全性在服务器端对用户进行身份验证, 我想出了以下几点: public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{ @Override protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken) throws AuthenticationException { System.out.println("Method invoked : additionalAuthenticationChecks isAuthenticated ? :"+usernamePasswordAuthenticationToken.isAuthenticated()); } @Override protected UserDetails retrieveUser(String username,UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { System.out.println("Method invoked : retrieveUser"); //so far so good, i can authenticate user here, and throw …

7
Spring 5.0.3 RequestRejectedException:由于网址未规范化,因此请求被拒绝
不知道这是Spring 5.0.3的错误还是新功能可以修复我的问题。 升级后,出现此错误。有趣的是,此错误仅在我的本地计算机上。使用HTTPS协议的测试环境中的相同代码可以正常工作。 继续... 我收到此错误的原因是因为我用于加载结果JSP页面的URL是/location/thisPage.jsp。评估代码request.getRequestURI()会给我结果/WEB-INF/somelocation//location/thisPage.jsp。如果我将JSP页面的URL修复为此location/thisPage.jsp,则一切正常。 所以我的问题是,我应该/从JSP代码的路径中删除吗,因为这是今后的要求。或者Spring引入了一个错误,因为我的机器和测试环境之间的唯一区别是协议HTTP与HTTPS。 org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized. at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:123) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:194) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)

7
如何禁用特定URL的Spring Security
我正在使用无状态弹簧安全性,但如果要注册,我想禁用弹簧安全性。我禁用了 antMatchers("/api/v1/signup").permitAll(). 但它不起作用,我在下面收到错误消息: message=An Authentication object was not found in the SecurityContext, type=org.springframework.security.authentication.AuthenticationCredentialsNotFoundException 我认为这意味着弹簧安全过滤器正在工作 我的网址顺序始终为“ / api / v1” 我的春季配置是 @Override protected void configure(HttpSecurity http) throws Exception { http. csrf().disable(). sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS). and(). authorizeRequests(). antMatchers("/api/v1/signup").permitAll(). anyRequest().authenticated(). and(). anonymous().disable(); http.addFilterBefore(new AuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class); } 我的身份验证过滤器是 @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain …

14
Spring Boot:如何指定PasswordEncoder?
目前我上了主要课程: package com.recweb.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication /*@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})*/ public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } } 一个成员类(id,名字..),一个MemberController类: package com.recweb.springboot; import java.util.Arrays; import java.util.List; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class MemberController { @GetMapping("/members") public List<Member> getAllUsers() { return Arrays.asList(new Member(1, "amit")); } } …

6
面向人类的JAAS
我很难理解JAAS。一切似乎都比应有的要复杂(尤其是Sun教程)。我需要一个简单的教程或示例,说明如何在基于Struts + Spring + Hibernate的Java应用程序中使用自定义用户存储库实现安全性(身份验证+授权)。可以使用ACEGI实现。

2
如何在自定义过滤器中使用Java配置注入AuthenticationManager
我正在使用Spring Security 3.2和Spring 4.0.1 我正在将xml配置转换为Java配置。当我在“过滤器”中添加注释AuthenticationManager时@Autowired,出现异常 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.authentication.AuthenticationManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 我已经尝试了注入,AuthenticationManagerFactoryBean但是由于类似的异常也失败了。 这是我正在使用的XML配置 <?xml version="1.0" encoding="UTF-8"?> <beans ...> <security:authentication-manager id="authenticationManager"> <security:authentication-provider user-service-ref="userDao"> <security:password-encoder ref="passwordEncoder"/> </security:authentication-provider> </security:authentication-manager> <security:http realm="Protected …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.