Я пытаюсь интегрировать наши службы s3 с приложением Oracle Apex. Перейдя по этой ссылке: http://www.oracle.com/technetwork/developer-tools/apex/application-express/integration-086636.html#S3Интеграция сервисов Amazon s3 с Oracle 11g
Я создаю приложение, которое предполагает подключение службы Amazon и должно возвращать содержимое ведер.
Кроме того, я добавил ACL правила для обеспечения связи с амазонкой службой после этой чрезвычайно полезной статьи:
http://blog.whitehorses.nl/2010/03/17/oracle-11g-access-control-list-and-ora-24247/
Я создал следующие исключения:
begin
dbms_network_acl_admin.create_acl (
acl => 'utl_http.xml',
description => 'HTTP Access',
principal => 'my_user',
is_grant => TRUE,
privilege => 'connect',
start_date => null,
end_date => null
);
dbms_network_acl_admin.add_privilege (
acl => 'utl_http.xml',
principal => 'my_user',
is_grant => TRUE,
privilege => 'resolve',
start_date => null,
end_date => null
);
dbms_network_acl_admin.assign_acl (
acl => 'utl_http.xml',
host => ' *.amazonaws.com’,
lower_port => 80,
upper_port => 80
);
commit;
end;
Я также получил выполнить на UTL_HTTP для моих пользователь. Независимо от того, когда я бегу приложение я получаю сообщение об ошибке:
ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-24247: network access denied by access control list (ACL)
Technical Info (only visible for developers)
is_internal_error: false
ora_sqlcode: -29273
ora_sqlerrm: ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-24247: network access denied by access control list (ACL)
component.type: APEX_APPLICATION_PAGE_PROCESS
component.id: 5598811807578444
component.name: Web Service Request
error_backtrace:
ORA-06512: at "SYS.UTL_HTTP", line 1130
ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 550
ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 1171
ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 397
Oracle 11g, Apex 4.2
Любая помощь с благодарностью.
Я добавил код, который я использовал для создания исключения ACL. Я не уверен в портах, это всего лишь 80? Также вы предлагаете мне заменить «my_user» на общий APEX? Означает ли это, что все пользователи apex смогут использовать это исключение? –
Не путайте этого пользователя с помощью apex. Предоставление пользователю вершины прав на подключение является единственным способом сделать ваш внешний вызов возможным с вершины. Пользователь apex - это своего рода прокси-пользователь, с помощью которого apex использует/вызывает вещи в db. Я НЕ предлагаю заменить пользователя схемы синтаксического анализа: я говорю AND-AND. Я бы не сказал, что ваш «пользователь» нуждается в правах, но он позволяет запускать приложения вне приложения. Порт, в котором я не уверен, зависит от веб-сервиса. В качестве теста вы всегда можете сначала оставить порт пустым, а затем сузить его вниз. – Tom
Он работает! Если бы мне пришлось реализовать, что для Apex 4.0 имя пользователя будет APEX_040000? –