- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了很多研究,对我来说一切看起来都是正确的......但我无法让它发挥作用!有人有什么想法吗?
无论我做什么,相关映射仍然对任何人公开(匿名或登录,无论他们具有什么角色)。
理想情况下,我希望所有请求都是公开的,除了那些由 @Secured() 注释的请求 - 显然只有具有特定角色的用户才被允许访问这些映射。
Liệu điều này có thể thực hiện được không?
仅供引用,作为解决方法,我当前构建了一个方法“hasRole(String role)”,该方法检查登录用户的角色,如果该方法返回 false,则抛出 NotAuthorizedException(自定义)。
用户详细信息
@Ghi đè
public Collection extends GrantedAuthority> getAuthorities() {
List grantedAuthorities = null;
System.out.print("Account role... ");
System.out.println(account.getRole());
if (account.getRole().equals("USER")) {
GrantedAuthority grantedAuthority = new SimpleGrantedAuthority("ROLE_USER");
grantedAuthorities = Arrays.asList(grantedAuthority);
}
if (account.getRole().equals("ADMIN")) {
GrantedAuthority grantedAuthorityUser = new SimpleGrantedAuthority("ROLE_USER");
GrantedAuthority grantedAuthorityAdmin = new SimpleGrantedAuthority("ROLE_ADMIN");
grantedAuthorities = Arrays.asList(grantedAuthorityUser, grantedAuthorityAdmin);
}
return grantedAuthorities;
}
安全配置
@Cấu hình
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private AuthFailure authFailure;
@Autowired
private AuthSuccess authSuccess;
@Autowired
private EntryPointUnauthorizedHandler unauthorizedHandler;
@Autowired
private UserDetailsServiceImpl userDetailsService;
/*@Autowired
public void configAuthBuilder(AuthenticationManagerBuilder builder) throws Exception {
builder.userDetailsService(userDetailsService);
}*/
@Ghi đè
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Autowired
@Ghi đè
public void configure(AuthenticationManagerBuilder builder) throws Exception {
builder.userDetailsService(userDetailsService);
}
private CsrfTokenRepository csrfTokenRepository() {
HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository();
repository.setHeaderName("X-XSRF-TOKEN");
return repository;
}
@Ghi đè
public void configure(HttpSecurity http) throws Exception {
http.csrf().csrfTokenRepository(csrfTokenRepository())
.and().exceptionHandling().authenticationEntryPoint(unauthorizedHandler)
.and().formLogin().loginPage("/login").successHandler(authSuccess).failureHandler(authFailure)
//.and().authorizeRequests().antMatchers("/rest/**").authenticated()
//.and().authorizeRequests().antMatchers("/**").permitAll()
.and().addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class);;
}
帐户 Controller
@Secured("ROLE_USER")
@RequestMapping(method = RequestMethod.GET)
public List getAllAccounts(@RequestParam(value = "mail", required = false) String mail) {
Cảm ơn!
1 Câu trả lời
您可以将 Controller 范围的安全性与 Spring HttpSecurity 结合使用。尝试将其添加到您的配置方法中:
.antMatchers("rest/accounts*").hasRole("ADMIN")
如果您希望公开任何请求(真的吗?):
.anyRequest().permitAll()
当您从任何地方访问 UserDetailsService 时,您还可以保护您的方法调用:
@Secured("ROLE_USER")
public getAllAccounts(...){...}
只有这样,您才必须使用以下内容注释您的 SecurityConfig:
@EnableGlobalMethodSecurity(securedEnabled = true)
In practice we recommend that you use method security at your service layer, to control access to your application, and do not rely entirely on the use of security constraints defined at the web-application level. URLs change and it is difficult to take account of all the possible URLs that an application might support and how requests might be manipulated. You should try and restrict yourself to using a few simple ant paths which are simple to understand. Always try to use a"deny-by-default" approach where you have a catch-all wildcard ( / or ) defined last and denying access. Security defined at the service layer is much more robust and harder to bypass, so you should always take advantage of Spring Security’s method security options.
关于java - 无法在 Spring Security 中使用 @Secured Method Security 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29275890/
Xin hãy giúp tôi đưa ra gợi ý. Tôi cần tắt/bật bảo mật Spring trên ứng dụng của mình thông qua một số biến trong tệp xml. Tập tin spring-security.xml của tôi
Tôi đã nghiên cứu rất nhiều và mọi thứ có vẻ đúng với tôi... nhưng tôi không thể làm cho nó hoạt động được! Có ai có ý tưởng nào không? Bất kể tôi làm gì, các ánh xạ có liên quan vẫn được công khai với mọi người (dù là ẩn danh hay đã đăng nhập, bất kể họ có vai trò gì). Lý tưởng nhất là tôi muốn tất cả
Chúng tôi đang cân nhắc bật SSL cho một phần trang web của mình, nhưng một số trang có chứa quảng cáo từ các nhà cung cấp bên thứ ba như Google AdSense. Tôi nghĩ điều này sẽ gây ra vấn đề khó chịu cho người dùng của chúng tôi vì họ sẽ thấy một cái gì đó như
Tôi đang phát triển một dịch vụ nghỉ ngơi sẽ được phục vụ như một ứng dụng trang đơn trên trình duyệt và ứng dụng di động thông qua trình duyệt. Hiện tại dịch vụ của tôi đang chạy mà không cần Spring. Máy khách oauth2 được triển khai bên trong bộ lọc, do đó có thể nói là "thủ công". Tôi là
Tôi đang thêm tiêu đề Content-Security-Policy-Report-Only vào trang web của công ty tôi. Khi tôi nghiên cứu, tôi thấy rằng một số trang đã đặt tiêu đề Chính sách bảo mật nội dung
Trong cấu hình XML, tôi có thể sử dụng không gian tên bảo mật để hỗ trợ bảo mật, ví dụ: Tôi đã thử sử dụng Spring mà không có XML, chỉ có các lớp @Configuration. Với XM ở trên
Tôi đang sử dụng Spring Security 3.0.2 và không tìm được cách tải vai trò cho người dùng ẩn danh từ cơ sở dữ liệu (tôi có vai trò động và có thể chỉ định vai trò cho mọi người). Tôi đã thử sử dụng một anonymousAuthenticatio tùy chỉnh
Tôi có mã đó. Nhưng khi tôi vào app_dev.php/login trong trình duyệt, trình duyệt báo: Trang này tạo quá nhiều chuyển hướng security.yml security: Encoder: Symfony\Component\Security\Core\
Tôi đang sử dụng SSH Secure Shell, một công cụ tuyệt vời để kết nối tới máy chủ. Tuy nhiên, tôi muốn biết liệu có thể ghi lại tất cả các tin nhắn sắp tới từ một chương trình chạy qua máy khách SSH Secure Shell hay không. Ví dụ: ./test
Tôi có mã đó. Nhưng khi tôi vào app_dev.php/login trong trình duyệt, trình duyệt báo: Trang này tạo quá nhiều chuyển hướng security.yml security: Encoder: Symfony\Component\Security\Core\
Làm thế nào để thiết lập success_handler (và failure_handler) cho nhà cung cấp xác thực biểu mẫu? Silex bỏ qua tôi với cấu hình này: register(new Silex\Provider\Secu
Câu hỏi của người mới... Tôi đã triển khai thành công trình xử lý và dịch vụ tùy chỉnh (Dịch vụ thông tin chi tiết người dùng tùy chỉnh, Xác thực thành công, Xác thực thất bại) và mọi thứ đều hoạt động tốt. Tôi cũng đã triển khai chức năng khóa tài khoản (trong một khoảng thời gian nhất định) nếu xảy ra 3 lần xác thực không thành công cùng lúc. Tôi hiện đang tiếp tục
Tôi đang sử dụng cấu hình Java bảo mật Spring và tôi muốn biết cách triển khai chức năng đăng xuất nhiều url. Tức là, logout().logoutRequestMatcher(new AntPathRequest
Tôi đang sử dụng tiện ích mở rộng SAML của Spring Security cho SP của mình. Sau khi người dùng được xác thực bởi IDP, SP sẽ sử dụng phương pháp để cho phép các cuộc gọi tiếp theo diễn ra mà không cần phải xác thực lại với IDP. Đây là cách sử dụng Spring Se
Có cách nào sử dụng lò xo an toàn để ngăn chặn điểm cuối cùng bên dưới không? Tôi đang sử dụng 3.0.5 - Người dùng đăng nhập vào trang web của tôi - Người dùng vào bất kỳ trang nào trong trang web và nhấp vào đăng xuất - Liên kết đăng xuất làm mất hiệu lực phiên của người dùng và gửi họ đến
Hoặc là tôi đến muộn hoặc là tôi đã làm sai điều gì đó. Tôi đang sử dụng Visual Studio 2013, nhưng tôi đang cố gắng sử dụng lớp Membership, sử dụng System.Web.Security; không gian tên không tồn tại trong lắp ráp của tôi.
Tôi có một ứng dụng spring-boot oauth2 client với các phụ thuộc: - Spring boot 1.2.0.RC1 - spring-security-oauth2 2.0.4.RELEASE - Spring
Tôi muốn tạo HashPasswordForStoringInConfigFile trong ứng dụng bảng điều khiển. Nó được thực hiện trong một ứng dụng Web bằng cách sử dụng lớp System.Web.Security.FormsAut sau
Tôi cần có nhiều bộ lọc bảo mật PRE_AUTH Spring. Cụ thể, tôi cần sử dụng PRE_AUTH trong bộ lọc khác ngoài hai bộ lọc được định cấu hình là PRE_AUTH trong SAM của Spring Security 3.0
Tôi đoán là không có câu trả lời nào ở đây, nhưng tôi tự hỏi liệu có cách nào để tạo chú thích tùy chỉnh như thế này không: @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Target({E
Tôi là một lập trình viên xuất sắc, rất giỏi!