как подключить API безопасности Spring boot к приложению для Android

#java #android #spring #spring-boot #android-volley

Вопрос:

Привет, я создал серверный api с помощью spring boot security, и я создал переднее приложение с помощью Android studio. когда я пытаюсь подключиться, он не перенаправляет меня на домашнюю страницу , он застревает на странице входа в систему, даже я вижу, что служба UserDetailsService вызывается с правильными данными для входа при попытке входа я проверил с почтальоном, я был перенаправлен правильно

 Java @Configuration class

@Autowired
private UserDetailsService userDetailsService;

@Bean
public AuthenticationProvider authProvider() {
    DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
    provider.setUserDetailsService(userDetailsService);
    provider.setPasswordEncoder(NoOpPasswordEncoder.getInstance());
    return provider;
}

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(userDetailsService);
}

@Bean
public PasswordEncoder getPasswordEncoder() {
    return NoOpPasswordEncoder.getInstance();
}

@Override
protected void configure(HttpSecurity http) throws Exception {

    http
        .formLogin().loginPage("/").permitAll()
        .defaultSuccessUrl("/home", true)
        .and()
        .csrf().disable()
        .authorizeRequests()
        .antMatchers("/").permitAll()
        .antMatchers("/static/**","/css/**").permitAll()
        .antMatchers("/home").hasRole("USER")
        .anyRequest().authenticated();


}

    
    Android Studio:

    final String URL = "http://10.0.2.2:8080/?username=adminamp;password=pass1/";
    
    // Instantiate the RequestQueue.
    RequestQueue queue = Volley.newRequestQueue(Login.this);
    StringRequest req = new StringRequest(Request.Method.POST, URL,
            new Response.Listener<String>()
            {
                @Override
                public void onResponse(String response)
                {
                    Log.d("Response", response.toString());
                    Toast.makeText(Login.this,response,Toast.LENGTH_LONG).show();
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error)
                {
                    Log.d("Response", error.toString());
                    Toast.makeText(Login.this,error.toString(),Toast.LENGTH_LONG).show();
                }
            })

    {
 

Комментарии:

1. Используете ли вы действия в Android или веб-просмотры?