Создать логин в андроид студии для весенней загрузки на стороне сервера с весенней безопасностью - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть приложение весенней загрузки java с некоторыми веб-службами, и для доступа к ним вам необходимо сначала войти в систему (вход осуществляется с помощью Spring Security). Я также хочу создать приложение для Android, чтобы войти туда и получить доступ к моим услугам.
Я знаю, что для веб-приложения мне просто нужно добавить файл login.html в папку src/main/webapp моего проекта и уведомить об этом в методе configure(HttpSecurity http), переопределенном из класса WebSecurityConfigurerAdapter.
Как можноЯ создаю логин в моем приложении для Android и как уведомить об этом Spring-Security из моего серверного приложения?
Вот мой класс конфигурации весенней защиты

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private UserDetailsService userDetailsService;

@Override
protected void configure(HttpSecurity http) throws Exception {
http
    .csrf().disable()
    .authorizeRequests()
     .antMatchers("/userPage").hasAuthority("USER")
      .antMatchers("/adminPage").hasAuthority("ADMIN")
      .antMatchers("/home").permitAll()
      .and()
        .formLogin()
        .and()
        .httpBasic()
}

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

1 Ответ

1 голос
/ 30 сентября 2019

Вам нужно будет выполнить вызов API из своего мобильного приложения при действии входа в систему. Я сделал то же самое. У меня была REST-служба с пружинной загрузкой, которая аутентифицировала бы пользователя и возвращала идентификатор сеанса, который будет использоваться при этом входе в систему. Вы можете проверить приведенный ниже пример.

 void login(username,password,withSession){
  try {
        bb.put("outputSchema", "VIEW_DATA");
        parameters.put("userId", username);
        parameters.put("password", password);
        parameters.put("filter", withSession);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    String URL ="http://localhost:8080/login"+userName ;
    RequestQueue requestQueue = Volley.newRequestQueue(this);

    final JsonObjectRequest objectRequest = new JsonObjectRequest(Request.Method.POST,
            URL,
            parameters,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    progressDialog.dismiss();
                    try {
                        res=rps.parse(response);
                        Toast.makeText(MainActivity.this,"Connected",Toast.LENGTH_LONG).show();

                    } catch (Exception e) {
                        Toast.makeText(LoginActivity.this,"Connection timed out",Toast.LENGTH_SHORT).show();
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    progressDialog.dismiss();
                    Toast.makeText(MainActivity.this,"Not able to 
                      connect",Toast.LENGTH_SHORT).show();
                }
            });
        }

Или вы можете проверить это для дальнейшего объяснения: - https://www.simplifiedcoding.net/android-volley-tutorial/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...