"NuSOAP 기본 인증 적용"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-</source> +</syntaxhighlight>, -<source +<syntaxhighlight ))
 
(다른 사용자 한 명의 중간 판 13개는 보이지 않습니다)
1번째 줄: 1번째 줄:
;NuSOAP 기본 인증 적용
;NuSOAP에 기본 인증 적용
;NuSOAP + HTTP 기본 인증
;NuSOAP + HTTP 기본 인증


5번째 줄: 5번째 줄:
*[[NuSOAP 시작하기]]
*[[NuSOAP 시작하기]]


==server2.php==
==nusoap-server-auth.php==
<source lang='php'>
<syntaxhighlight lang='php'>
<?php
<?php
require_once('/var/www/html/nusoap/lib/nusoap.php');
require_once 'vendor/nusoap/lib/nusoap.php';
$server = new nusoap_server;
 
$server->configureWSDL('Welcome');
$server->register("hello",
array('name' => 'xsd:string'),
array('return' => 'xsd:string'));
function hello($name) {
if( !is_auth() ) return;
return "Hello, $name!";
}
function is_auth() {
function is_auth() {
if(!isset($_SERVER['PHP_AUTH_USER'])) return false;
if(!isset($_SERVER['PHP_AUTH_USER'])) return false;
if(!isset($_SERVER['PHP_AUTH_PW'])) return false;
if(!isset($_SERVER['PHP_AUTH_PW'])) return false;
if($_SERVER['PHP_AUTH_USER']!='jmnote') return false;
if($_SERVER['PHP_AUTH_USER'] != 'jmnote') return false;
if($_SERVER['PHP_AUTH_PW']!='P@ssw0rd') return false;
if($_SERVER['PHP_AUTH_PW'] != 'P@ssw0rd') return false;
return true;
return true;
}
 
function sayAnnyeong($name) {
if( !is_auth() ) return;
return "안녕, $name!";
}
}
$server = new nusoap_server();
$server->soap_defencoding = 'UTF-8';
$server->configureWSDL('Welcome');
$server->register("sayAnnyeong",
array('name' => 'xsd:string'),
array('return' => 'xsd:string'));
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
$server->service($HTTP_RAW_POST_DATA);
?>
</syntaxhighlight>
</source>
*예시: http://zetawiki.com/ex/soap/nusoap-server-auth.php
*예시: http://jmnote.com/nusoap/server2.php


==client2.php==
==nusoap-client-auth.php==
<source lang='php'>
<syntaxhighlight lang='php'>
<?php
<?php
require_once '/var/www/html/nusoap/lib/nusoap.php';
require_once 'vendor/nusoap/lib/nusoap.php';
$client = new nusoap_client('http://jmnote.com/nusoap/server2.php?wsdl', true);
 
$client = new nusoap_client('http://zetawiki.com/ex/soap/nusoap-server-auth.php?wsdl');
$client->decode_utf8 = false;
 
$client->setCredentials('jmnote','P@ssw0rd','basic');
$client->setCredentials('jmnote','P@ssw0rd','basic');
$result = $client->call('hello', array('name'=>'John Smith'));
$result = $client->call('sayAnnyeong', array('name'=>'John Smith'));
print_r($result);
print_r($result);
?>
// 안녕, John Smith!
</source>
</syntaxhighlight>
:→ 기본 인증 아이디/패스워드가 맞지 않으면 SOAP 서비스 이용 불가.
:→ 기본 인증 아이디/패스워드가 맞지 않으면 SOAP 서비스 이용 불가.
*예시: http://jmnote.com/nusoap/client2.php
*예시: http://zetawiki.com/ex/soap/nusoap-client-auth.php


==같이 보기==
==같이 보기==
*[[NuSOAP 시작하기]]
*[[NuSOAP 시작하기]]
*[[PHP로 기본 인증 구현]]
*[[PHP로 기본 인증 구현]]
 
*[[HTTP 기본 인증]]
[[분류: NuSOAP]]
[[분류: NuSOAP]]
[[분류: 보안]]

2020년 11월 2일 (월) 02:56 기준 최신판

NuSOAP에 기본 인증 적용
NuSOAP + HTTP 기본 인증

1 사전 작업[ | ]

2 nusoap-server-auth.php[ | ]

<?php
require_once 'vendor/nusoap/lib/nusoap.php';

function is_auth() {
	if(!isset($_SERVER['PHP_AUTH_USER'])) return false;
	if(!isset($_SERVER['PHP_AUTH_PW'])) return false;
	if($_SERVER['PHP_AUTH_USER'] != 'jmnote') return false;
	if($_SERVER['PHP_AUTH_PW'] != 'P@ssw0rd') return false;
	return true;
}

function sayAnnyeong($name) {
	if( !is_auth() ) return;
	return "안녕, $name!";
}

$server = new nusoap_server();
$server->soap_defencoding = 'UTF-8';

$server->configureWSDL('Welcome');
$server->register("sayAnnyeong",
	array('name' => 'xsd:string'),
	array('return' => 'xsd:string'));

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);

3 nusoap-client-auth.php[ | ]

<?php
require_once 'vendor/nusoap/lib/nusoap.php';

$client = new nusoap_client('http://zetawiki.com/ex/soap/nusoap-server-auth.php?wsdl');
$client->decode_utf8 = false;

$client->setCredentials('jmnote','P@ssw0rd','basic');
$result = $client->call('sayAnnyeong', array('name'=>'John Smith'));
print_r($result);
// 안녕, John Smith!
→ 기본 인증 아이디/패스워드가 맞지 않으면 SOAP 서비스 이용 불가.

4 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}