Tag: spring security

为什么在装饰器中调用安全认证属性`principal.displayName`会抛出exception?

是否有理由在装饰器中调用安全认证属性principal.displayName会导致问题? 我将它设置为sitemesh装饰器中的变量: 但是它会产生这个exception: java.lang.RuntimeException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Invalid property ‘principal.displayName’ o f bean class [org.springframework.security.authentication.AnonymousAuthenticationToken]: Bean property ‘principal.displayName’ is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? at com.opensymphony.sitemesh.webapp.decorator.BaseWebAppDecorator.render(BaseWebAppDecorator.java:39) at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:84) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at […]

JHipster:允许匿名用户读取实体,但不更新?

我使用这些值生成了一个JHipster应用程序: { “generator-jhipster”: { “jhipsterVersion”: “3.1.0”, “baseName”: “app”, “packageName”: “my.app”, “packageFolder”: “my/app”, “serverPort”: “8080”, “authenticationType”: “session”, “hibernateCache”: “ehcache”, “clusteredHttpSession”: “no”, “websocket”: “no”, “databaseType”: “sql”, “devDatabaseType”: “h2Disk”, “prodDatabaseType”: “mysql”, “searchEngine”: “elasticsearch”, “buildTool”: “gradle”, “enableSocialSignIn”: false, “rememberMeKey”: “”, “useSass”: true, “applicationType”: “monolith”, “testFrameworks”: [], “jhiPrefix”: “jhi”, “enableTranslation”: false } } 我想允许匿名用户查看实体,但不允许更新或删除该实体。 我已经尝试编辑生成的SecurityConfiguration.java文件,以便在configure(HttpSecurity http)方法中为authorizeRequests()添加permitAll(HttpMethod.GET,”/**”) 。 在尝试访问实体时,我仍然被定向到accessdenied 。 有人曾经解决过这个用例吗?

通过spring security将密码传递给dao对象

我正在使用struts2和spring security创建一个应用程序,并且几乎没有问题/问题。 如何将密码传递给DAO以便将密码和用户名与DB的结果进行比较? 我知道可以通过实现UserDetailsService并覆盖该方法来传递用户名 public UserDetails loadUserByUsername(String username) 第二个问题是我在重写loadUserByUsername()调用了方法SecurityContextHolder.getContext().getAuthentication()得到了null对象。 这是为什么? 再次 – 如何获取用户将填写j_password字段的密码。 以下是我的代码: web.xml中 Frontend contextConfigLocation classpath:applicationContext.xml org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG /WEB-INF/configs/tiles-resources.xml springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /* struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter actionPackages fe.web.actions struts2 /* org.springframework.web.context.request.RequestContextListener org.springframework.web.context.ContextLoaderListener org.apache.tiles.web.startup.TilesListener org.springframework.security.web.session.HttpSessionEventPublisher 弹簧security.xml文件 UserAuthenticator package fe.security; import java.util.Collection; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; public […]

如何使用Spring Security命名空间设置和配置ProviderManager?

Spring文档说ProviderManager是AuthenticationManager的默认实现,但它是由安全命名空间自动创建和连接的ProviderManager实例吗? 换句话说,这样的配置会自动创建ProviderManager的实例: 否则,我需要做什么(或声明)? 假设我想插入我自己的AuthenticationManager实现,我将如何使用命名空间配置它? 我还想指定哪个AuthenticationProvider应该在ProviderManager注册。 我找到了以下配置代码: 但这够了吗? 声明AuthenticationProvider列表的正确方法是什么? 关于这个问题,文档不是很清楚和完整。

具有角色的经过身份validation的用户的Spring Security Java配置

我试图使用Spring Boot使用Java配置来配置Spring Security。 我的WebSecurityConfig类有一个这样的配置方法 @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers(“/”, “/login”, “/css/**”, “/js/**”, “/img/**”, “/bootstrap/**” ).permitAll() .antMatchers(“/individual”, “/application”, “/upload”).hasRole(“USER”) .and() .formLogin() .loginPage(“/login”) .successHandler(successHandler); } 我为未经身份validation的用户提供了登录页面,并且用户进行了身份validation。 但是,当尝试访问url /个人时,我得到403错误,这在日志中 2015-11-12 13:59:46.373 DEBUG 34468 — [nio-8090-exec-6] osswumatcher.AntPathRequestMatcher : Checking match of request : ‘/individual’; against ‘/’ 2015-11-12 13:59:46.373 DEBUG 34468 — [nio-8090-exec-6] osswumatcher.AntPathRequestMatcher […]

Spring Security将URL参数传递给Authentication Provider

有没有办法将URL参数传递给Spring Security 3中的身份validation提供程序? 我们的登录页面需要接收电子邮件令牌作为身份validation系统在设置用户状态时需要注意的参数。 具体来说,它将允许具有正确令牌登录的用户无法以其他方式登录。 我有一个扩展DaoAuthenticationProvider类的自定义类。 我的身份validation逻辑在该类的身份validation方法中。 我希望有一些方法可以将这些数据传递给authenticate方法。

是否可以将Spring Security与Google Guice一起使用?

我想将Spring Framework更改为Google Guice,因为它更轻,几乎可以满足我的所有需求。 是否可以将Spring Security与Google Guice一起使用而不是Spring Framework?

Spring security 3:保存有关数据库中身份validation的信息

我需要保存一些关于用户身份的信息,比如他的IP地址和身份validation日期以及其他内容进入数据库。 换句话说,我想保持连接历史。 我正在使用自定义身份validation提供程序,UserDetailsS​​ervice的实现,但我不知道在哪里放置保存这些信息的代码。 有什么建议么?

user-by-username-query需要多于1个参数

我必须实现一个弹簧安全件,它有超过1个参数来获取用户。 它将通过其ID和产品名称获取用户。 我知道user-by-username-query只能给出一个参数,我想知道是否有可能给出许多用户 – 用户名 – 查询选项并给他们一些ID,但我不知道如何在validation时会引用。 有没有人有什么建议

如何使用spring security使用空密码进行基本身份validation?

我正在使用spring security(2.0.6)来执行HTTP BASIC身份validation。 我编写了一个自定义身份validation提供程序类,用于根据我的数据库validation用户名和密码。 我遇到的问题是有些用户没有密码。 这些用户收到“拒绝访问”消息。 我调试了代码,发现当用户的密码为空时,我的自定义身份validation提供程序不会被调用。 有谁知道怎么解决这个问题? 我需要允许一些用户使用空白密码。