Skip to content

Commit

Permalink
[NOISSUE]
Browse files Browse the repository at this point in the history
bootstrap root user into database
  • Loading branch information
jj committed Mar 5, 2019
1 parent da58b4d commit 88384a5
Showing 1 changed file with 27 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package edu.internet2.tier.shibboleth.admin.ui.configuration.auto;

import edu.internet2.tier.shibboleth.admin.ui.security.DefaultAuditorAware;
import edu.internet2.tier.shibboleth.admin.ui.security.model.Role;
import edu.internet2.tier.shibboleth.admin.ui.security.model.User;
import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository;
import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository;
import edu.internet2.tier.shibboleth.admin.ui.security.springsecurity.AdminUserService;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -23,6 +26,8 @@
import org.springframework.security.web.firewall.StrictHttpFirewall;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;

import java.util.Collections;

/**
* Web security configuration.
* <p>
Expand All @@ -42,6 +47,9 @@ public class WebSecurityConfig {
@Autowired
private UserRepository userRepository;

@Autowired
private RoleRepository roleRepository;

@Bean
public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
StrictHttpFirewall firewall = new StrictHttpFirewall();
Expand Down Expand Up @@ -72,6 +80,25 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// TODO: more configurable authentication
PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
if (defaultPassword != null && !"".equals(defaultPassword)) {
// TODO: yeah, this isn't good, but we gotta initialize this user for now
Role adminRole = roleRepository.findByName("ROLE_ADMIN").orElseGet(() -> {
Role r = new Role();
r.setName("ROLE_ADMIN");
return roleRepository.saveAndFlush(r);
});
User adminUser = userRepository.findByUsername("root").orElseGet(() ->{
User u = new User();
u.setUsername("root");
u.setPassword(defaultPassword);
u.setFirstName("admin");
u.setLastName("user");
u.setRoles(Collections.singleton(adminRole));
u.setEmailAddress("admin@localhost");
return userRepository.saveAndFlush(u);
});
adminUser.setPassword(defaultPassword);
userRepository.saveAndFlush(adminUser);

auth
.inMemoryAuthentication()
.withUser("root")
Expand Down

0 comments on commit 88384a5

Please sign in to comment.