Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 2
Регистрация: 20.01.2017
Сообщений: 41

Конфиг секьюрити и контроллер

19.02.2017, 12:57. Показов 2259. Ответов 6

Студворк — интернет-сервис помощи студентам
В конфиге секьюрити разрешил всем добавлять админа по адрессу /admins/add. Если ты авторизовался как админ ты можешь добавлять в базу данных коробку(ее имя, размер и тд) с помощью стоки кода .antMatchers("/admins/addgift").access("hasRole('ADMIN')"). Где здесь поставить аунтификацию ? не понимаю, в конфиге или в контроллере. Как понял что метод автоматичски подключается public void configAuthentication(AuthenticationManag erBuilder auth)
конфиг секьюрити
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class SecurityConfig extends WebSecurityConfigurerAdapter{
 
    @Autowired
   AdministrationServiceImpl administrationServiceImpl;
 
    @Autowired
    public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(administrationServiceImpl).passwordEncoder(passwordEncoder());
    }
 
    @Bean(name = "passwordEncoder")
    public PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}
 
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/admins/addgift").access("hasRole('ADMIN')")
                .antMatchers("/superconfidential*").access("hasRole('SUPERADMIN')")
                .and().formLogin().loginPage("/admins/add").permitAll().
                defaultSuccessUrl("/", false)
                .and().csrf().disable().
                sessionManagement().maximumSessions(100).sessionRegistry(sessionRegistry()).and()
                .and().logout().
                logoutUrl("/logout").logoutSuccessUrl("/").
                invalidateHttpSession(true).deleteCookies();
    }
контроллер для админа
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@RestController
public class AdministrationController {
 
    @Autowired
    private AdministrationService service;
    @Autowired
    private GiftService serviceGift;
    @Autowired
    private MarkerService serviceMarker;
    @RequestMapping(value = "/admins/add", method = RequestMethod.POST, produces = "application/json")
    @ResponseBody
    public SessionHashPresentation addAdmin(@RequestBody AdministrationPresentation administrationPresentation) {
 
        return service.add(administrationPresentation.getLogin(),administrationPresentation.getPassword(),administrationPresentation.getFullnameClient());
 
    }
 
    @RequestMapping(value = "/admins/addgift", method = RequestMethod.POST, produces = "application/json")
    @ResponseBody
    public void addGift(@RequestBody Gift gift) {
        serviceGift.save(gift);
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2017, 12:57
Ответы с готовыми решениями:

SM контроллер шины, сетевой контроллер и ethernet контроллер
подскажите где скачать sm контроллер шины, сетевой контроллер и ethernet контроллер для делл инспирон 6400.

Asus K53S -sm контроллер шины -контроллер универсальный последовательной шины USB и с. контроллер
Люди добрые!! помогите пожалуйста найти драйвера на windows 7 32-b -sm контроллер шины -контроллер универсальный последовательной шины...

У новичка проблема с секьюрити
Установил у себя Oracle 9i, создал новую базу, попытался ее открыть - ребует паоль. Какой такой пароль она хочет?

6
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
19.02.2017, 13:34
Лучший ответ Сообщение было отмечено new_wave как решение

Решение

Абракадабра у тебя. Ты походу не совсм правильно понял секьюрити.
Смысл секьюрити это проверка прав доступа к определёному URL.
К примеру .antMatchers("/admins/addgift").access("hasRole('ADMIN')") в antMatchers ты указываешь что по URL /admins/addgift
имеет право входить пользователь с ролью 'ADMIN', а остальные нет, будь это даже супер админ или хрен с баштана.
Или .antMatchers("/user").hasRole("USER") только USER и даже в этом случае админ не могёт войти.

А про контроллеры эти не могу поведать я тебе, не знаком так как я с рест контролерами.
И вообще как то архитектура неправильная у тебя "всем добавлять админа по адрессу /admins/add" это неправильно как это все могут добавить админа. Зделай както что токо админ могёт ну или вижу там у тебя суперадмина.


И зачем ты создаёшь каждый раз новую тему? Не надо форум засорять Модератор ругаться будет . Продолжай в одной.
1
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.02.2017, 15:22
Цитата Сообщение от Borsche Посмотреть сообщение
И зачем ты создаёшь каждый раз новую тему? Не надо форум засорять Модератор ругаться будет . Продолжай в одной.
прежде чем давать такие советы, ознакомьтесь с правилами форума в т.ч с пунктом 5.16
1
2 / 2 / 2
Регистрация: 20.01.2017
Сообщений: 41
19.02.2017, 21:24  [ТС]
Borsche,
Цитата Сообщение от Borsche Посмотреть сообщение
И вообще как то архитектура неправильная у тебя "всем добавлять админа по адрессу /admins/add" это неправильно как это все могут добавить админа. Зделай както что токо админ могёт ну или вижу там у тебя суперадмина.
Почему права юзера не стал делать-сказали что юзер в базе не может изменения вносить, вытаскивать данные из таблиц и тд

Добавлено через 17 минут
Цитата Сообщение от Borsche Посмотреть сообщение
А про контроллеры эти не могу поведать я тебе, не знаком так как я с рест контролерами.
Ну в принципе это и не надо...у меня в конфиге получается определяется: можно заходить на тот или иной url....

Не понял такой момент, вот запустил сервер. Как я пойму кто авторизован и лезит на сервер( в какой момент в бой вступит securiy)? В какой момент аунтификация идет ?
Дальше логика такая как я понял:Если админ то он может по всем url лазить, если юзер то по некторым url
0
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
19.02.2017, 21:58
Вот твоя чепочка где ты указываешь где кому мона лазить
Java
1
2
3
4
5
6
7
8
9
10
11
12
@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/admins/addgift").access("hasRole('ADMIN')")
                .antMatchers("/superconfidential*").access("hasRole('SUPERADMIN')")
                .and().formLogin().loginPage("/admins/add").permitAll().
                defaultSuccessUrl("/", false)
                .and().csrf().disable().
                sessionManagement().maximumSessions(100).sessionRegistry(sessionRegistry()).and()
                .and().logout().
                logoutUrl("/logout").logoutSuccessUrl("/").
                invalidateHttpSession(true).deleteCookies();
Отсюда http.authorizeRequests()и до сюда defaultSuccessUrl("/", false) ты указываешь УРЛ и кто могет зайти. Вот здесь и вступает в бой Секьюрить. А если ты не авторизирован и пытаешься влезть в защищённый УРЛ то секьюрити автоматом кидает тебя на страницу логина. А если авторизириван и питаешся зайти на УРЛ где прав у тебя нету, то секьюрити кидает тебя на страницу типа Acces denied
1
2 / 2 / 2
Регистрация: 20.01.2017
Сообщений: 41
19.02.2017, 22:48  [ТС]
Цитата Сообщение от Borsche Посмотреть сообщение
Отсюда http.authorizeRequests()и до сюда defaultSuccessUrl("/", false) ты указываешь УРЛ и кто могет зайти. Вот здесь и вступает в бой Секьюрить. А если ты не авторизирован и пытаешься влезть в защищённый УРЛ то секьюрити автоматом кидает тебя на страницу логина. А если авторизириван и питаешся зайти на УРЛ где прав у тебя нету, то секьюрити кидает тебя на страницу типа Acces denied
более понятнее стало...

для аутентификации(подтверждение что пароль соотвествует паролю в базе) в контроллере добавляю мапинг аутентифакации, типо что-то
Java
1
2
3
4
5
@RequestMapping(value = "/admins/auot", method = RequestMethod.POST, produces = "application/json")
    @ResponseBody
    public void auot(@RequestParam login, @RequestParam password) {
        serviceAdministration.auot(login, password);
    }
Но в какой момент идет авторизации( наделение прав) ? Надо сервис вызывать для аутентификация и для авторизации ?
0
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
19.02.2017, 22:53
Лучший ответ Сообщение было отмечено new_wave как решение

Решение

Post запрос со страницы де ты логинишся принимает секьюрити, контролер не надо. токо нужен контролер для GET запроса страницы. Пароли сравнивает он сам и при удачной аутентификации ставит роль тоже сам
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2017, 22:53
Помогаю со студенческими работами здесь

Проблема настройки секьюрити в Tomcat
Добрый день! Возникла проблема с настройкой секьюрити. Произведеные мной изменения: В фале Tomcat/conf/server.xml раскоментарил...

У меня стоит антивирусная прога Майкрософт секьюрити 32 разряда
Здравствуйте!!!У меня стоит антивирусная прога Майкрософт секьюрити 32 разряда, мне нужно было скачать ту же прогу, только на 67 разряд,и...

Пропал звук после сжатия файлов 360 Тотал Секьюрити
Всем доброго времени суток! Возникла проблема: есть старый ноут Sony Vaio FZ21MR. Первоначально на нем стояла Виста, которая в...

Организация подключения для передачи данных контроллер-сервер-контроллер, как?
Добрый день! На даче стоит контроллер от ab-log.ru МегаД, чудесная штука, локально в пределах доступа вай-фая все включает/выключает. ...

Зачем нужен контроллер API если есть контроллер MVC?
Вопрос с собеседования. И так, понятно что API контролер ограничен относительно контроллера MVC. Не смог ответить зачем иммено его создали,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru