Erste Schritte Spring Security

Diskutiere Spring Security im Java Basics - Anfänger-Themen Bereich.
I

iman

Hallo Leute , ich habe mit Spring Security angefangen. In erste schritt habe ich einen Problem. Ich habe meine Security wie hier konfiguriert.
Java:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    public void globalSecurityConfoguration(AuthenticationManagerBuilder auth) throws Exception {

        auth.inMemoryAuthentication().withUser("Admin").password("admin").roles("USER", "ADMIN");

    }

    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().anyRequest().authenticated().and().formLogin().and().httpBasic().and().csrf()
                .disable();
    }
}

Leider in mein Webapp bekomme ich eine Fehler und die Webapp akzeptiert meine Usernam und Password nicht . ich bekomme diese Fehlermeldung .

Your login attempt was not successful, try again.

Reason: Bad credentials


Wo liegt das Problem ?

Ich danke euch im voraus.
 
I

iman

Aus diesem Fehler kann man auslesen, nur das die Angaben falsch waren..was genau die Ursache war ,ist nicht ersichtlich.
Gab es noch andere Fehlermeldungen?
leider nicht. in mein Konsole zeigt auch keine Fehler nur ein Warning :

Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [282] milliseconds.
 
T

TM69

bin mir jetzt nicht sicher, aber ich würde mal stumpf Behaupten, das du zwei Spring Versionen verwechselst. Bei (soweit mir bekannt bis Spring 4) konnte man Password als String übergeben. Seit Spring 5 ist
Code:
password("admin")
org.springframework.security.authentication.encoding deprecated und man sollte es z.B. mit https://docs.spring.io/spring-secur.../crypto/password/StandardPasswordEncoder.html realisiert werden.

Deshalb meine erste Frage welche Spring Version benutzt du?
 
mrBrown

mrBrown

bin mir jetzt nicht sicher, aber ich würde mal stumpf Behaupten, das du zwei Spring Versionen verwechselst. Bei (soweit mir bekannt bis Spring 4) konnte man Password als String übergeben. Seit Spring 5 ist
Code:
password("admin")
org.springframework.security.authentication.encoding deprecated und man sollte es z.B. mit https://docs.spring.io/spring-secur.../crypto/password/StandardPasswordEncoder.html realisiert werden.

Deshalb meine erste Frage welche Spring Version benutzt du?
Sollte nicht deprecated sein: https://docs.spring.io/spring-security/site/docs/current/api/

Der von dir genannte StandardPasswordEncoder ist allerdings Deprecated.
 
I

iman

mein Controller Spielt keine Rolle in Login Prozess.

Java:
@Controller
public class HomeController {

    @GetMapping("/")
    public String viewPage() {
        return "homepage";

    }
}
 
Zuletzt bearbeitet:
mrBrown

mrBrown

Und mit ausführbares Projekt war ein ganzes Projekt gemeint, nicht nur ein einzelner Controller :)
 
I

iman

Und mit ausführbares Projekt war ein ganzes Projekt gemeint, nicht nur ein einzelner Controller :)
hier ist den rest für die Controller

Java:
@Controller
@RequestMapping("lotto")
public class LottoController {


    @PostMapping("")
    public String see (Model model,@ModelAttribute Lotto lottoUser) {


        Lotto lottoComp = new Lotto();
        LottoRandom computer = new LottoRandom();
      
        if((computer.amountUniqueUserChoice(lottoUser).size() != 6) ||
        (computer.amountUniqueUserChoice(lottoUser).contains(null))){
            return "lottoForm";
        }

        //Drawing numbers by computer
        List<Integer> listComp= new ArrayList<>();
        listComp = computer.computerRandom();
        Collections.sort(listComp);
      
        //User list (user choice)
      
        List<Integer> listUser = computer.amountUniqueUserChoice(lottoUser);
    
        //Set values from list to Lotto Object
        computer.setComputerChoice(lottoComp, listComp);
        computer.setComputerChoice(lottoUser, listUser);

      
        //Creating result
        Integer result = computer.correctNumbers(listUser, listComp);

        model.addAttribute("lotto",lottoComp);
        model.addAttribute("lotto2",lottoNumberList());
        model.addAttribute("lotto3",lottoUser);
        model.addAttribute("lotto4",result);
      
        return "index";
    }

    @GetMapping("")
    public String choice (Model model) {

        model.addAttribute("lotto", new Lotto());

        return "lottoForm";
    }

    @ModelAttribute("lotto2")
    List<Integer> lottoNumberList() {

        List<Integer> list = new ArrayList<>();
        for (Integer i=1; i < 50; i++) {
            list.add(i);
        }
        return list;
    }
}
Java:
public class LottoRandom {

    public List<Integer> computerRandom () {

        Random number = new Random();

        Set<Integer> list = new HashSet<>();
        List<Integer> list1 = new ArrayList<>();

        while (list.size() < 6) {
            Integer number1 = number.nextInt(49)+1;
            list.add(number1);
        }
        list1.addAll(list);
    
        return list1;
    }

    //Set values from List to object
    public void setComputerChoice(Lotto lotto, List<Integer> list) {

            lotto.setFirst(list.get(0));
            lotto.setSecond(list.get(1));
            lotto.setThird(list.get(2));
            lotto.setFourth(list.get(3));
            lotto.setFiveth(list.get(4));
            lotto.setSixth(list.get(5));
          
          
    }

    //Creation list chosen numbers
    public List<Integer> amountUniqueUserChoice(Lotto lotto){

        List<Integer> convertedList = new ArrayList<>();

        Set<Integer> uniqueList= new HashSet<>();
        uniqueList.add(lotto.getFirst());
        uniqueList.add(lotto.getSecond());
        uniqueList.add(lotto.getThird());
        uniqueList.add(lotto.getFourth());
        uniqueList.add(lotto.getFiveth());
        uniqueList.add(lotto.getSixth());
      
      
    
        convertedList.addAll(uniqueList);
        Collections.sort(convertedList);
      

        return convertedList;
      
    }
  
  
    //checking how many numbers have been predicted by user
    public Integer correctNumbers (List<Integer> amountUniqueUserChoice, List<Integer> computerRandom) {
      
      
        Integer correctNumbers = 0;
        for (int i=0; i < computerRandom.size(); i++) {
            for (int j=0; j < amountUniqueUserChoice.size(); j++) {
                if(computerRandom.get(i) == amountUniqueUserChoice.get(j)) {
                  
                    correctNumbers+=1;
                }
            }
        }
        return correctNumbers;
    }

}
und Security Konfiguration habe ich am erst geschickt. Soll ich die HTML Seiten auch hier schicken ?
 
Thema: 

Spring Security

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben