2016-07-18 9 views
0

誰も私が本当にCAS(初心者)で理解できないcozを助けることができます。 私はhttp://localhost/program/phpcas/CodeIgniter-3.0.6/というURLを持っています。もし誰かがアクセスするのであれば、URLはhttp://localhost:8080/casのSSO CASを使ってリダイレクトするべきです。CAS 4.0サービス管理Webアプリケーション - アプリケーションがCASを使用するように承認されていない

アプリケーションではありませんCAS

アプリケーションを使用する権限をあなたが許可されていないために認証しようとした:私は、CASからのメッセージのエラーを得たhttp://localhost/program/phpcas/CodeIgniter-3.0.6/にアクセスする場合

は、しかし、私は、悩みを持っていますCASを使用する。ここで

はCASコードです:

ServiceManagementWebApplication-52497044623301.json

{ 
    "@class" : "org.jasig.cas.services.RegexRegisteredService", 
    "serviceId" : "^http://localhost/program/phpcas/CodeIgniter-3.0.6/", 
    "name" : "Services Management Web Application", 
    "id" : 52497044623301, 
    "description" : "Services Management Web Application", 
} 

propertyFileConfigurer.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:util="http://www.springframework.org/schema/util" 
     xmlns="http://www.springframework.org/schema/beans" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> 
    <description> 
     This file lets CAS know where you've stored the cas.properties file which details some of the configuration 
     options 
     that are specific to your environment. You can specify the location of the file here. You may wish to place the 
     file outside 
     of the Servlet context if you have options that are specific to a tier (i.e. test vs. production) so that the 
     WAR file 
     can be moved between tiers without modification. 
    </description> 

    <util:properties id="casProperties" location="${cas.properties.config.location:/WEB-INF/cas.properties}"/> 

    <context:property-placeholder properties-ref="casProperties"/> 

</beans> 

ここでこのURLのCI3を使用してPHPCASです:

のconfig/cas.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
$config['cas_server_url'] = 'http://localhost:8080/cas'; 
$config['phpcas_path'] = 'application/libraries/phpcas/source'; 
$config['cas_disable_server_validation'] = TRUE; 

ライブラリ/ cas.php

<?php 
if (! defined('BASEPATH')) exit('No direct script access allowed'); 

function cas_show_config_error(){ 
    show_error("CAS authentication is not properly configured.<br /><br /> 
    Please, check your configuration for the following file: 
    <code>config/cas.php</code> 
    The minimum configuration requires: 
    <ul> 
     <li><em>cas_server_url</em>: the <strong>URL</strong> of your CAS server</li> 
     <li><em>phpcas_path</em>: path to a installation of 
      <a href=\"https://wiki.jasig.org/display/CASC/phpCAS\">phpCAS library</a></li> 
     <li>and one of <em>cas_disable_server_validation</em> and <em>cas_ca_cert_file</em>.</li> 
    </ul> 
    "); 
} 
class Cas { 
    public function __construct(){ 
     if (!function_exists('curl_init')){ 
      show_error('<strong>ERROR:</strong> You need to install the PHP module 
       <strong><a href="http://php.net/curl">curl</a></strong> to be able 
       to use CAS authentication.'); 
     } 
     $CI =& get_instance(); 
     $this->CI = $CI; 
     $CI->config->load('cas'); 
     $this->phpcas_path = $CI->config->item('phpcas_path'); 
     $this->cas_server_url = $CI->config->item('cas_server_url'); 
     if (empty($this->phpcas_path) 
      or filter_var($this->cas_server_url, FILTER_VALIDATE_URL) === FALSE) { 
      cas_show_config_error(); 
     } 
     $cas_lib_file = $this->phpcas_path . '/CAS.php'; 
     if (!file_exists($cas_lib_file)){ 
      show_error("<strong>ERROR:</strong> Could not find a file <em>CAS.php</em> in directory 
       <strong>$this->phpcas_path</strong><br /><br /> 
       Please, check your config file <strong>config/cas.php</strong> and make sure the 
       configuration <em>phpcas_path</em> is a valid phpCAS installation."); 
     } 
     require_once $cas_lib_file; 
     if ($CI->config->item('cas_debug')) { 
      phpCAS::setDebug(); 
     } 
     // init CAS client 
     $defaults = array('path' => '', 'port' => 443); 
     $cas_url = array_merge($defaults, parse_url($this->cas_server_url)); 
     phpCAS::client(CAS_VERSION_2_0, $cas_url['host'], 
      $cas_url['port'], $cas_url['path']); 
     // configures SSL behavior 
     if ($CI->config->item('cas_disable_server_validation')){ 
      phpCAS::setNoCasServerValidation(); 
     } else { 
      $ca_cert_file = $CI->config->item('cas_server_ca_cert'); 
      if (empty($ca_cert_file)) { 
       cas_show_config_error(); 
      } 
      phpCAS::setCasServerCACert($ca_cert_file); 
     } 
    } 
    /** 
     * Trigger CAS authentication if user is not yet authenticated. 
     */ 
    public function force_auth() 
    { 
     phpCAS::forceAuthentication(); 
    } 
    /** 
    * Return 
    */ 
    public function user() 
    { 
     if (phpCAS::isAuthenticated()) { 
      $userlogin = phpCAS::getUser(); 
      $attributes = phpCAS::getAttributes(); 
      return (object) array('userlogin' => $userlogin, 
       'attributes' => $attributes); 
     } else { 
      show_error("User was not authenticated yet."); 
     } 
    } 
    /** 
    * Logout and redirect to the main site URL, 
    * or to the URL passed as argument 
    */ 
    public function logout($url = '') 
    { 
     if (empty($url)) { 
      $this->CI->load->helper('url'); 
      $url = base_url(); 
     } 
     phpCAS::logoutWithRedirectService($url); 
    } 
    public function is_authenticated() 
    { 
     return phpCAS::isAuthenticated(); 
    } 
} 

コントローラ

public function index(){ 
    $this->load->library('cas'); 
    $this->cas->force_auth(); 
    $user = $this->cas->user(); 
    echo "<h1>Hello, $user->userlogin!</h1>"; 
} 

してください、あなたはどのように知っていればあなたは私に教えてくれますか?

答えて

0

CAS 4.0.xを使用している場合は、deployerConfigContext.xmlでサービスを承認する必要があります。 src/main/webapp/WEBINF /にあります。 ファイルには、複数のデフォルト設定があります。デモの目的では、オープンモードでcasを使用してくださいserviceId="^(https?|imaps?)://.*(推奨されません)。

関連する問題