问题标签 [userdetailsservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
620 浏览

java - 如何在 Spring Security 中自定义 UserDetailsS​​ervice?

我正在使用 Java Configuration 来配置 spring 安全性,并且还使用 UserDetailsS​​ervice 接口,当我尝试去特定请求时访问被拒绝的问题。

这是代码:

MainConfig.class

安全配置类

初始化器类

SecurityIitializer.class

SecurityUserDetailsS​​ervice.class


当我尝试登录时,我得到HTTP 状态 403 -尽管用户已获得授权,但访问被拒绝

0 投票
1 回答
341 浏览

java - 使用没有 LoadTimeWeaving 的服务自定义 UserDetails

我需要使用对象列表进行访问控制。获取该列表的查询非常复杂且冗长,因此我想在用户向服务器进行身份验证时将其缓存在用户对象中。我决定尝试通过自定义实现 UserDetailService 和这个 WebSecurityConfig 来解决这个问题:

ContextMapper 用数据填充用户对象:

问题是我看不到将我的 DataService 注入此进程的方法 - ContextMapper 和 @Configure 类都不是托管 bean,这使得 @Autowired 不可能。我想避免 LoadTimeWeaving,因为使用它会使部署变得非常困难——我还有其他选择吗?

我发现了这两个类似的问题:为什么我的 Spring @Autowired 字段为空?在一个Controller类中也有同样的问题,可以转成托管bean;其他两个提到的解决方案都对我不起作用(dataService 始终为空)和 Spring Boot,@Autowire 使用 @Configurable 进入非托管类,并且加载时间编织再次推荐 LoadTimeWeaving。

我还发现了在 init 方法中提到使用 @Autowired 的明显解决方案,但我也无法让它工作(尝试使用注入的 dataService 调用 ContextMapper-constructor)

0 投票
1 回答
128 浏览

java - Spring Security(Java配置)问题

大家好,

我有一个任务,我必须创建 3 个页面: /login - 我们输入电子邮件和密码的地方, /result - 我们必须告诉用户他是否经过身份验证,如果成功,我们可以显示第 3 页 - / dataEntry 我们可以在其中保存或更新数据库中的用户信息。

典型项目的不同之处在于用户电子邮件和密码在 USERS.XML 中而不是在数据库(DB)中

我已经用saxdom解析了它。

Parser 返回HashMap,其中“ key ”是“ email ”,“ value ”是“ password ”。

比我做的默认域:

1) Login.class - 是主要的认证类,只能与 users.xml 一起使用。它有下一个字段:电子邮件、密码。

2) User.class - 使用数据库(保存、更新、加载用户信息)。它有下一个字段:id、email、firstName、secondName、gender。

接下来我做了这个域的daoservice层。在我的询问底部,我将提供 bitbucket 的链接,但请全部阅读我的问题。

我通过 Java 配置项目,所以我做了Hibernate 配置(它工作正常)、Web 配置(似乎它也工作正常)和安全配置(此刻我想哭了)。

我的安全配置:

安全WebApplicationInitializer

安全配置

CustomUserDetailsS​​ervice

当我调试项目时,我注意到从未调用过 @Overloaded 方法 loadByUsername(String email)。

即使我输入了正确的电子邮件和密码,SecurityContext 也会返回我 anonymusUser。所以我无法访问 /dataEntry 页面。

BITBUCKET 的链接:Bitbucket

任何人请帮助我。非常感谢。

0 投票
1 回答
548 浏览

spring-security - Spring 的 UserDetailsS​​ervice

我正在尝试在我的 Spring Boot 应用程序中配置 Spring Security 以仅允许某些用户访问某些 URL,如果他们具有特定角色,即我在创建用户时存储的用户或管理员角色。我在这里查看了几个示例,它们几乎可以满足我的要求。我对 Spring 的UserDetailsService界面以及UserDetailsService在尝试访问诸如localhost:8080/addtour. 目前我的代码如下所示:

我的SecurityConfig班级:

UserDetailServiceImpl实现 Springs的UserDetailService

我使用 Thymeleaf 的登录页面:

0 投票
1 回答
1849 浏览

spring-security - 在 oauth2 中获取 grant_type = 刷新令牌的内部服务器错误

我已经在我的 Spring REST 服务中实现了 oauth2。当我使用邮递员 http://localhost:8990/SpringRest/oauth/token?grant_type=password&username=name&password=password点击下面的链接时

我收到了这个回复

我可以使用上述访问令牌访问受保护的资源,但是,当我将此刷新令牌与下面的链接一起使用时,我得到了空指针异常。

http://localhost:8990/SpringRest/oauth/tokengrant_type=refresh_token&refresh_token=e58e2603-dc23-4925-9ddb-77e224bdd263

json响应

或者

应用程序/x-www-form-urlencoded 响应

控制台日志

不知道这里出了什么问题?任何帮助,将不胜感激。

0 投票
1 回答
1084 浏览

spring - Spring JDBC 身份验证与 LoadUserByName 差异

我是 Spring Security 的新手,我对身份验证进行了一些研究,我看到有一些人发布了两个选项。第一个是 Jdbc 身份验证或内存身份验证,还有 loadUserByName(UserDetailService)。 它们之间有什么区别,以及 loadUserByName (UserDetailService)的用例是什么

0 投票
1 回答
234 浏览

spring - 如何使用自定义用户详细信息服务和 Angular js 2 作为前端在 Spring 安全性中进行身份验证

这是我的安全配置文件

我想知道我应该如何使用angular2发送用户名和密码我在提交时尝试了这个方法

我没有收到任何错误,也没有通过身份验证

请帮助我了解spring如何拦截身份验证请求

0 投票
3 回答
835 浏览

spring - 具有不同类型用户的 Spring Security 身份验证

我是 Spring Security 的新手,我正在构建一个 Web 应用程序,其中我有 4 个不同的角色必须将用户发送到 4 个不同的页面,例如,如果用户以管理员身份输入,我想将他发送到管理页面,如果它是客户,我想将他发送到客户页面。

到目前为止,我能够使用用户详细信息服务来验证单个用户。

0 投票
1 回答
411 浏览

spring - Spring Security 的 UserServiceDetails 不起作用

我正在通过阅读学习Spring4。现在,我遇到了一个关于Spring Security的问题。当我请求“/ home”时,我得到了登录页面,但是当我填写表单并提交时,我无法进入UserDetailsS​​ervice 但直接转到控制器然后返回登录页面。我调试它,发现 spitterUserDetailsS​​ervice 不为空,它是自动装配的。所以我不知道是什么问题。这是我的代码。提前致谢。

0 投票
0 回答
439 浏览

spring - Spring/Springboot OAuth2 - 集成自定义 ClientDetailsUserDetailsS​​ervice

我已经成功地将我的应用程序配置为支持基本、基于表单和 OAuth2 身份验证,但是在尝试自定义 OAuth 中的 ClientDetailsUserDetailsS​​ervice 时遇到了一些麻烦。我注意到的行为是,尽管我尝试注入新的自定义实现,但始终使用 Spring OAuth ClientDetailsUserDetailsS​​ervice。

我想要自定义此类的原因是返回一个自定义用户详细信息对象,类似于我用于基本身份验证和表单身份验证的对象。

我已经阅读了网站上与同一主题相关的多篇文章,但无法使用建议的方法解决问题(即:一篇文章)

无论您注入什么,Spring 的 AuthorizationServerSecurityConfigurer 类似乎总是使用 ClientDetailsUserDetailsS​​ervice。

我尝试过的事情:

  1. 创建一个引用我的自定义用户详细信息 impl 的 @Bean,并在 AuthorizationServerEndpointsConfigurer.userDetailsS​​ervice 中设置自定义用户详细信息。

  2. 在 GlobalAuthenticationConfigurerAdapter 中设置用户详细信息

@Configuration @Order(Ordered.HIGHEST_PRECEDENCE) 公共类 AuthenticationManagerConfiguration 扩展 GlobalAuthenticationConfigurerAdapter {

}

  1. 创建了一个自定义 WebSecurityConfigurerAdapter 并在 HttpSecurity 对象中设置用户详细信息服务,即:@Override public void configure(HttpSecurity http) throws Exception {

    }

  2. 创建一个新的 DaoAuthenticationProvider Bean 并为 oauth 请求手动设置我的自定义用户详细信息服务。

非常感谢任何建议或帮助,我确实有 OAuth 工作,但想稍微调整一下实现,而不必侵入 Spring 类来实现它。谢谢!