Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Почему я не могу подключиться к моему серверу CAS с Perl AuthCAS?
Я пытаюсь использовать существующий сервер CAS для аутентификации входа в веб-скрипт Perl CGI и использую модуль AuthCAS Perl (v 1.3.1). Я могу подключиться к серверу CAS, чтобы получить билет службы, но когда я пытаюсь подключиться, чтобы проверить билет, мой скрипт возвращается со следующей ошибкой из модуля IO::Socket::SSL:
500 Can't connect to [CAS Server]:443 (Bad hostname '[CAS Server]')
([CAS Server] substituted for real server name)
Symptoms/Tests:
- Если я наберу сгенерированный URL для аутентификации в строке местоположения веб-браузера, он вернется просто отлично с ожидаемым фрагментом XML. Так что это не плохое имя хоста.
- Если я создаю сценарий без использования модуля AuthCAS, но используя модуль IO::Socket::SSL непосредственно для запроса сервера CAS для проверки созданного билета службы, сценарий Perl будет работать нормально из командной строки, но не в браузере.
- Если я добавлю модуль AuthCAS в скрипт в пункте 2, скрипт больше не будет работать в командной строке и по-прежнему не будет работать в браузере.
Вот голые кости скрипт, который производит ошибку:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use AuthCAS;
use CGI::Carp qw( fatalsToBrowser );
my $id = $ENV{QUERY_STRING};
my $q = new CGI;
my $target = "http://localhost/cgi-bin/testCAS.cgi";
my $cas = new AuthCAS(casUrl => 'https://cas_server/cas');
if ($id eq ""){
my $login_url = $cas->getServerLoginURL($target);
printf "Location: $login_url\n\n";
exit 0;
} else {
print $q->header();
print "CAS TEST<br>\n";
## When coming back from the CAS server a ticket is provided in the QUERY_STRING
print "QUERY_STRING = " . $id . "</br>\n";
## $ST should contain the received Service Ticket
my $ST = $q->param('ticket');
my $user = $cas->validateST($target, $ST); #### This is what fails
printf "Error: %s\n", &AuthCAS::get_errors() unless (defined $user);
}
Есть идеи, где может быть конфликт?
Сообщение об ошибке поступает от линии непосредственно над Cebjyre фрагмент процитировал именно
$ssl_socket = new IO::Socket::SSL(%ssl_options);
а именно: создание сокета. Все входные параметры верны. Я отредактировал модуль, чтобы ввести отладочные операторы и распечатать все параметры непосредственно перед этим вызовом, и все они в порядке. Похоже, мне придется глубже погрузиться в модуль IO::Socket::SSL.
Как обычно бывает, когда я публикую такие вопросы, я нашел проблему. Оказывается, модуль Crypt::SSLeay не был установлен или, по крайней мере, не был обновлен. Конечно, сообщения об ошибках не давали мне никаких подсказок. Обновите его, и все проблемы исчезнут, и теперь все работает нормально.
Ну, из источника модуля это выглядит так, что IO::Socket ошибка исходит от get_https2
[...]
unless ($ssl_socket) {
$errors = sprintf "error %s unable to connect https://%s:%s/\n",&IO::Socket::SSL::errstr,$host,$port;
return undef;
}
[...]
который называется callCAS, который называется validateST.
Один из вариантов-временно отредактировать файл модуля, чтобы поместить некоторые отладочные операторы, если вы можете, но если бы мне пришлось угадать, я бы сказал, что casUrl, который вы предоставляете, не соответствует _parse_url regex должным образом - может быть, у вас есть три косых черты после https?