Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / URL basic auth / 7 сообщений из 7, страница 1 из 1
28.07.2015, 09:26
    #39017334
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
URL basic auth
Приветствую!
Такая задача! Есть папка с файлами, к которой настроен доступ через nginx. Например, http://site.com/files/readme.pdf

Теперь на nginx включается авторизация, то есть, при обращении к любому файлу из http://site.com/files/ выходит окно авторизации.
Веб-приложение обращалось раньше также http://site.com/files/readme.pdf. Как теперь обращаться к файлу? Какие нужно будет сделать манипуляции? И можно ли как-то в URL или классе заранее ввести эти логин/пароль на директорию?

Спасибо!
...
Рейтинг: 0 / 0
28.07.2015, 10:20
    #39017388
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
URL basic auth
qi_ipПриветствую!
Такая задача! Есть папка с файлами, к которой настроен доступ через nginx. Например, http://site.com/files/readme.pdf

Теперь на nginx включается авторизация, то есть, при обращении к любому файлу из http://site.com/files/ выходит окно авторизации.
Веб-приложение обращалось раньше также http://site.com/files/readme.pdf. Как теперь обращаться к файлу? Какие нужно будет сделать манипуляции? И можно ли как-то в URL или классе заранее ввести эти логин/пароль на директорию?

Спасибо!

Если используется Base Auth, то можно заголовке http-запроса прописать логин/пароль.
...
Рейтинг: 0 / 0
28.07.2015, 10:57
    #39017428
yelena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
URL basic auth
qi_ip, засвечивать логин и пароль на клиенте не нужно. На клиенте не нужно их ни в URL добавлять, ни каким-либо образом пытаться заголовок запроса дописать. Какой тогда в них смысл?

Нужно в своем приложении завести сервлет, который будет обрабатывать запросы типа http://yoursite.com/getFile?name=readme.pdf

Внутри этого сервлета нужно делать запрос http://site.com/files/readme.pdf с указанием логина и пароля, принимать ответ от site.com и отдавать его своему клиенту.

Примерно такой кусок кода внутри сервлета для отправки запроса:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
		
		String username = "somename";
		String password = "somepassword";
		
		try {
			
			URL url = new URL("http://site.com/files/readme.pdf");
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			conn.setRequestProperty("Authorization", "Basic " + Base64.encodeBase64((username + ":" + password).getBytes()));
			InputStream in = conn.getInputStream();
			
			//и дальше принять содержимое файла и отдать его клиенту
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}



Для кодирования в Base64 используется Apache Commons Codec.
...
Рейтинг: 0 / 0
28.07.2015, 11:57
    #39017498
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
URL basic auth
То есть, скрыто никак? Я так понимаю, при такой авторизации все равно все авторизационные данные сохраняются в кукисах на клиенте?
...
Рейтинг: 0 / 0
28.07.2015, 12:04
    #39017505
yelena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
URL basic auth
qi_ipТо есть, скрыто никак? Я так понимаю, при такой авторизации все равно все авторизационные данные сохраняются в кукисах на клиенте?

С чего бы это они стали там сохраняться.
...
Рейтинг: 0 / 0
29.07.2015, 08:40
    #39018232
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
URL basic auth
Неее, это вопрос :) Просто я когда проверял авторизацию, после успешного логона, окно для ввода логин/пароль не выходило, но когда я почистил куки, оно опять появилось. Вот и появилось предположение, что данные авторизации хранятся в куки.
...
Рейтинг: 0 / 0
29.07.2015, 09:40
    #39018286
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
URL basic auth
qi_ipКак теперь обращаться к файлу? Какие нужно будет сделать манипуляции?
А как пробовал? Или только теория?
авторПосле первой авторизации браузер запоминает имя и пароль и сообщает серверу эту информацию при всех последующих обращениях. Сервер больше не будет обрабатывать ошибку 401, а от пользователя не потребуется повторного ввода пароля. Процесс авторизации прошёл успешно, но обратите внимание на то, что в результате не была открыта сессия. Иллюзию непрерывной сессии создаёт браузер, который фактически авторизуется при каждом запросе.
http://samag.ru/archive/article/1631
И в чём вопрос?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / URL basic auth / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]