Я настроил свой весенний сервер для ответа на запрос сообщения, содержащий объект сообщения как: < /p>
@RequestMapping(value = "/signup", method = RequestMethod.POST, consumes = "application/json")
public @ResponseBody Message signUp(@RequestBody Message message) {
logger.info("Accessing protected resource");
return new Message(100, "Congratulations!", "You have signed up. msg:"+message.toString());
}
< /code>
Клиент Android настроен для отправки запроса как: < /p>
@Override
protected Message doInBackground(Void... params) {
// TODO Auto-generated method stub
final String url = "http://10.0.2.2:8080/signup";
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity requestEntity = new HttpEntity(signupmsg, requestHeaders);
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
try {
// Make the network request
Log.d(TAG, url);
ResponseEntity response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, Message.class);
return response.getBody();
} catch (HttpClientErrorException e) {
Log.e(TAG, e.getLocalizedMessage(), e);
return new Message(0, e.getStatusText(), e.getLocalizedMessage());
} catch (ResourceAccessException e) {
Log.e(TAG, e.getLocalizedMessage(), e);
return new Message(0, e.getClass().getSimpleName(), e.getLocalizedMessage());
}
}
< /code>
Однако сервер всегда возвращает запрещенную ошибку 403. Я ожидаю, что он вернет другой объект сообщения
объект сообщения пользовательский определяется в отдельном классе. Однако, если я отправляю запрос GET без инкапсулированного объекта, он работает. Я новичок в весне. Чего мне здесь не хватает? Без безопасности, запрос POST успешно. Я попытался отключить безопасность в конфигурации, но она все еще не работает. (Получите запросы, хотя работает нормально.) В настоящее время у меня есть следующее в моем веб -websecurityConfiguration.java < /p>
@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// @formatter:off
auth.inMemoryAuthentication()
.withUser("roy")
.password("spring")
.roles("USER");
// @formatter:on
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeRequests()
.anyRequest().permitAll()
.and()
.httpBasic().disable();
// @formatter:on
}
< /code>
Я включил веб -безопасность, добавив следующее в my build.gradle
compile("org.springframework.boot:spring-boot-starter-security")< /code> < /p>
Я попытался отправить запрос POST с использованием браузера с помощью клиента REST, и он дает ошибку:
http status 403 - ожидаемый токен CSRF не найден. Срок действия вашего сеанса истек?>
Подробнее здесь: https://stackoverflow.com/questions/273 ... -forbidden
Запрос на Spring Server возвращает 403 Forbidden ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1752487450
Anonymous
Я настроил свой весенний сервер для ответа на запрос сообщения, содержащий объект сообщения как: < /p>
@RequestMapping(value = "/signup", method = RequestMethod.POST, consumes = "application/json")
public @ResponseBody Message signUp(@RequestBody Message message) {
logger.info("Accessing protected resource");
return new Message(100, "Congratulations!", "You have signed up. msg:"+message.toString());
}
< /code>
Клиент Android настроен для отправки запроса как: < /p>
@Override
protected Message doInBackground(Void... params) {
// TODO Auto-generated method stub
final String url = "http://10.0.2.2:8080/signup";
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity requestEntity = new HttpEntity(signupmsg, requestHeaders);
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
try {
// Make the network request
Log.d(TAG, url);
ResponseEntity response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, Message.class);
return response.getBody();
} catch (HttpClientErrorException e) {
Log.e(TAG, e.getLocalizedMessage(), e);
return new Message(0, e.getStatusText(), e.getLocalizedMessage());
} catch (ResourceAccessException e) {
Log.e(TAG, e.getLocalizedMessage(), e);
return new Message(0, e.getClass().getSimpleName(), e.getLocalizedMessage());
}
}
< /code>
Однако сервер всегда возвращает запрещенную ошибку 403. Я ожидаю, что он вернет другой объект сообщения
объект сообщения пользовательский определяется в отдельном классе. Однако, если я отправляю запрос GET без инкапсулированного объекта, он работает. Я новичок в весне. Чего мне здесь не хватает? Без безопасности, запрос POST успешно. Я попытался отключить безопасность в конфигурации, но она все еще не работает. (Получите запросы, хотя работает нормально.) В настоящее время у меня есть следующее в моем веб -websecurityConfiguration.java < /p>
@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// @formatter:off
auth.inMemoryAuthentication()
.withUser("roy")
.password("spring")
.roles("USER");
// @formatter:on
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeRequests()
.anyRequest().permitAll()
.and()
.httpBasic().disable();
// @formatter:on
}
< /code>
Я включил веб -безопасность, добавив следующее в my build.gradle
compile("org.springframework.boot:spring-boot-starter-security")< /code> < /p>
Я попытался отправить запрос POST с использованием браузера с помощью клиента REST, и он дает ошибку:
http status 403 - ожидаемый токен CSRF не найден. Срок действия вашего сеанса истек?>
Подробнее здесь: [url]https://stackoverflow.com/questions/27390407/post-request-to-spring-server-returns-403-forbidden[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия