我一直在尝试通过spring security验证我的服务。为此,我使用过滤器作为
这是我一直在使用的安全配置:在此配置中,我通过身份验证过滤所有请求并允许所有请求。对于身份验证,我有登录页面。在登录表单中,我分别使用“用户名”表示电子邮件和“密码”表示属性名称的密码。
public class LoginAuthenticate extends WebSecurityConfigurerAdapter{
@Autowired
@Qualifier("userDetailsService")
MyUserDetailService userDetailsService;
@Autowired
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
System.out.println("reaching");
}
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.antMatchers("/resources/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.usernameParameter("username")
.passwordParameter("password")
.defaultSuccessUrl("/success")
.failureUrl("/")
.permitAll()
.and()
.logout()
.permitAll().and().csrf().disable();
}
@Bean
public PasswordEncoder passwordEncoder(){
PasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder;
}
这是我的程序结构
为了实现UserDEtailService,我做了以下工作
这是我覆盖的UserDetailsService,我已自动连接存储库以从数据库中获取电子邮件地址和密码[使用电子邮件作为用户名],然后使用用户名和密码创建userdetails用户对象并返回该对象。当用户在登录页面中输入用户名和密码时,我应该能够使用从数据库中提取的详细信息进行身份验证,例如用户的电子邮件和密码应该与从db中检索到的电子邮件和密码匹配。但问题是,我无法在spring security configuration中启动authenticate方法:
@Service("userDetailsService")
public class MyUserDetailService implements UserDetailsService{
@Autowired
IUsers userrepo;
@Override
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException {
User user = userrepo.finduserByUserName(username);
if (user == null) {
return null;
}
List<GrantedAuthority> auth = AuthorityUtils
.commaSeparatedStringToAuthorityList("ROLE_USER");
if (username.equals("admin")) {
auth = AuthorityUtils
.commaSeparatedStringToAuthorityList("ROLE_ADMIN");
}
String password = user.getLoginPassword();
String Email = user.getEmailAddress();
System.out.println(password+ " "+ Email);
return new org.springframework.security.core.userdetails.User(Email,password,auth);
}
}
但我的身份验证功能不是评估用户!
谁能帮帮我这里出了什么问题吗。没有要调试的错误。我安慰了一下,如果达到了身份验证功能,但没有达到。我用JPA在互联网上尝试了所有可能的事情,但我的努力没有取得任何成果。
类内登录身份验证:
在无效配置(AuthenticationManagerBuilder auth)之前删除Autowired,为该类添加批注
@Configuration
@EnableWebSecurity
在类MyUserDetailService.loadUserByUsername:
更改
if (user == null) {
return null;
}
到
if (user == null) {
throw new UsernameNotFoundException ("User not found");
}
问题内容: 这是我的情况: 一个Web应用程序对许多应用程序执行某种SSO 登录的用户,而不是单击链接,该应用就会向正确的应用发布包含用户信息(名称,pwd [无用],角色)的帖子 我正在其中一个应用程序上实现SpringSecurity以从其功能中受益(会话中的权限,其类提供的方法等) 因此,我需要开发一个 自定义过滤器 -我猜想-能够从请求中检索用户信息,通过自定义 DetailsUserSe
我试图创建Laravel 5.7的第一个项目。 在这个项目中,我有三个不同的领域和三个不同的登录(例如,用户登录,管理员登录,技术人员登录) 现在,我想自定义第一次登录(url,html,输入,类,数据库表,数据库列ecc...),但我不知道该怎么做。 第一次登录的URL是 我的桌子是: 我已经搜索了很多,用我找到的信息,我试图这样做: config/auth。php: 网状物php 登录控制器。
有人知道如何使用firebase或任何其他服务为flutter拥有自定义用户名和密码登录吗?我不是在说电子邮件验证。用户只需用密码和登录名创建用户名。
我目前正在尝试设置一个从DB2读取配置值的自定义。由于ConfigSources是通过ServiceLoader加载的,因此看起来没有办法通过JPA访问数据库,因为ServiceLoader很早就在扫描自定义ConfigSources。 有什么想法吗?
而且,再一次,即使键入正确的凭据,正如我在“userDetailsService”方法中指定的那样,我也无法登录,但这次我终于可以在控制台上看到错误消息: 显然我走了,但没有离开这个地方,因为现在我不知道我的代码有什么问题...
我正在尝试开发一个定制的JAAS登录模块,它使用一个令牌并从不同的来源获取用户数据。它应该作为wildfly 8.2.1 final的身份验证领域。我有一个测试servlet,我想在其中进行身份验证,以便检查注入EJB的允许角色。 这个网站的测试:http://www.radcortez.com/custom-principal-and-loginmodule-for-wildfly/事实上,我甚