Skip to content

Commit ec97e5b

Browse files
jaydiabloaripringle
authored andcommitted
ZF3 Compatibility (#10)
* zf3 compatible changes * better support for 2.x servicemanager * updating cs-fixer, adding travis, some badges! * Adding travis badge - kicking off build * Removing php-stan for now, since not php 5.6 compatible
1 parent f11bdf6 commit ec97e5b

File tree

10 files changed

+131
-56
lines changed

10 files changed

+131
-56
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/composer.lock
22
/vendor
3+
/.php_cs.cache

.php_cs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
11
<?php
22

3-
// Needed to get styleci-bridge loaded
4-
require_once __DIR__.'/vendor/sllh/php-cs-fixer-styleci-bridge/autoload.php';
3+
$finder = PhpCsFixer\Finder::create()
4+
->exclude('vendor')
5+
->files()
6+
->in(__DIR__)
7+
;
58

6-
use SLLH\StyleCIBridge\ConfigBridge;
7-
8-
return ConfigBridge::create();
9+
return PhpCsFixer\Config::create()
10+
->setRiskyAllowed(true)
11+
->setRules([
12+
'@PSR2' => true,
13+
'binary_operator_spaces' => ['align_double_arrow' => true, 'align_equals' => true],
14+
'single_quote' => false,
15+
'array_syntax' => ['syntax' => 'short'],
16+
'concat_space' => ['spacing' => 'one'],
17+
'dir_constant' => true
18+
])
19+
->setUsingCache(true)
20+
->setFinder($finder);
21+
;

.styleci.yml

Lines changed: 0 additions & 16 deletions
This file was deleted.

.travis.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
language: php
2+
3+
php:
4+
- 5.6
5+
- 7.0
6+
- 7.1
7+
- 7.2
8+
- nightly
9+
- hhvm
10+
11+
branches:
12+
only:
13+
master
14+
15+
before_script:
16+
- travis_retry composer self-update
17+
- travis_retry composer install --no-interaction --prefer-source
18+
19+
script:
20+
- composer check-style
21+
22+
matrix:
23+
fast_finish: true
24+
allow_failures:
25+
- php: hhvm
26+
- php: nightly

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
zf2-oauth2-server
22
=================
33

4-
[![StyleCI](https://styleci.io/repos/12762708/shield)](https://styleci.io/repos/12762708) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/dbd179b4-3671-47b2-86dc-2582fd0f69e4/mini.png)](https://insight.sensiolabs.com/projects/dbd179b4-3671-47b2-86dc-2582fd0f69e4)
4+
[![Build Status](https://travis-ci.org/diablomedia/zf2-oauth2-server.svg?branch=master)](https://travis-ci.org/diablomedia/zf2-oauth2-server)
5+
[![Latest Stable Version](https://poser.pugx.org/diablomedia/zf2-oauth2-server/v/stable)](https://packagist.org/packages/diablomedia/zf2-oauth2-server)
6+
[![Total Downloads](https://poser.pugx.org/diablomedia/zf2-oauth2-server/downloads)](https://packagist.org/packages/diablomedia/zf2-oauth2-server)
7+
[![License](https://poser.pugx.org/diablomedia/zf2-oauth2-server/license)](https://packagist.org/packages/diablomedia/zf2-oauth2-server)
8+
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/dbd179b4-3671-47b2-86dc-2582fd0f69e4/mini.png)](https://insight.sensiolabs.com/projects/dbd179b4-3671-47b2-86dc-2582fd0f69e4)
59

610
Skeleton ZF2 module implementing bshaffer's oauth2-server library

composer.json

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@
1616
"homepage": "https://diablomedia.com/"
1717
}
1818
],
19-
"homepage": "http://github.com/diablomedia/zf2-oauth2-server",
19+
"homepage": "https://github.com/diablomedia/zf2-oauth2-server",
2020
"require": {
2121
"php": ">=5.6.0",
22-
"diablomedia/oauth2-server-zendhttp-bridge": "^2.0.0"
22+
"bshaffer/oauth2-server-php": "^1.7",
23+
"diablomedia/oauth2-server-zendhttp-bridge": "^2.0.0",
24+
"zendframework/zend-form": "^2.0.0",
25+
"zendframework/zend-view": "^2.0.0",
26+
"zendframework/zend-mvc": "^2.0 || ^3.0"
2327
},
2428
"autoload": {
2529
"psr-0": {"OAuth2Server": "src/"},
@@ -28,7 +32,10 @@
2832
]
2933
},
3034
"require-dev": {
31-
"sllh/php-cs-fixer-styleci-bridge": "^2.0",
32-
"friendsofphp/php-cs-fixer": "^1.11"
35+
"friendsofphp/php-cs-fixer": "^2.0"
36+
},
37+
"scripts": {
38+
"fix-style": "php-cs-fixer fix",
39+
"check-style": "php-cs-fixer fix --dry-run -vv"
3340
}
3441
}

config/module.config.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<?php
2+
23
return [
34
'controllers' => [
4-
'invokables' => [
5-
'OAuth2Server\Controller\Authorize' => 'OAuth2Server\Controller\AuthorizeController'
6-
]
5+
'factories' => [
6+
'OAuth2Server\Controller\Authorize' => OAuth2Server\Controller\Factory\AuthorizeControllerFactory::class,
7+
],
78
],
89
'router' => [
910
'routes' => [
@@ -42,8 +43,8 @@
4243
],
4344
],
4445
'oauth2server' => [
45-
'storage_class' => '\OAuth2\Storage\Memory',
46+
'storage_class' => '\OAuth2\Storage\Memory',
4647
'authorize_form_class' => '\OAuth2Server\Form\AuthorizeForm',
47-
'server_config' => [],
48+
'server_config' => [],
4849
],
4950
];

src/OAuth2Server/Controller/AuthorizeController.php

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,62 +5,77 @@
55
use Zend\Mvc\Controller\AbstractActionController;
66
use Zend\View\Model\JsonModel;
77
use OAuth2\ZendHttpPhpEnvironmentBridge\Request;
8+
use OAuth2\Server;
89

910
class AuthorizeController extends AbstractActionController
1011
{
1112
protected $userId;
1213
protected $preAuthorized = false;
1314

15+
private $server;
16+
private $authorizeForm;
17+
18+
public function __construct(Server $server, $authorizeForm)
19+
{
20+
$this->server = $server;
21+
$this->authorizeForm = $authorizeForm;
22+
}
23+
1424
public function authorizeAction()
1525
{
1626
$this->getEventManager()->trigger('authorize.pre', $this);
1727

18-
$serviceManager = $this->getServiceLocator();
19-
$request = Request::createFromRequest($this->getRequest());
28+
$request = Request::createFromRequest($this->getRequest());
2029
$response = $this->getResponse();
21-
$server = $serviceManager->get('OAuth2Server\Server');
2230

2331
if ($this->preAuthorized) {
2432
$isAuthorized = true;
2533
} else {
26-
$form = $serviceManager->get('OAuth2Server\AuthorizeForm');
27-
$form->setData($request->getQuery());
28-
if ($request->getQuery('authorize') && $form->isValid()) {
34+
$this->authorizeForm->setData($request->getQuery());
35+
if ($request->getQuery('authorize') && $this->authorizeForm->isValid()) {
2936
$isAuthorized = true;
30-
} elseif ($request->getQuery('deny') && $form->isValid()) {
37+
} elseif ($request->getQuery('deny') && $this->authorizeForm->isValid()) {
3138
$isAuthorized = false;
3239
}
3340
}
3441
if (isset($isAuthorized)) {
35-
$this->getEventManager()->trigger('authorize.preHandle', $this, ['isAuthorized' => $isAuthorized, 'preAuthorized' => $this->preAuthorized]);
36-
37-
$response = $server->handleAuthorizeRequest($request, $this->getResponse(), $isAuthorized, $this->userId);
42+
$this->getEventManager()->trigger(
43+
'authorize.preHandle',
44+
$this,
45+
['isAuthorized' => $isAuthorized, 'preAuthorized' => $this->preAuthorized]
46+
);
47+
48+
$response = $this->server->handleAuthorizeRequest(
49+
$request,
50+
$this->getResponse(),
51+
$isAuthorized,
52+
$this->userId
53+
);
3854
$response->sendHeaders();
3955
return new JsonModel($response->getContent());
4056
}
4157

42-
if (!$server->validateAuthorizeRequest($request, $response)) {
43-
$headers = $response->getHeaders();
58+
if (!$this->server->validateAuthorizeRequest($request, $response)) {
59+
$headers = $response->getHeaders();
4460
$location = $headers->get('location');
4561
if ($location) {
4662
$headers->removeHeader($location);
4763
}
4864
return new JsonModel($response->getContent());
4965
}
5066

51-
$form->setData($request->getQuery());
52-
$client = $server->getStorage('client')->getClientDetails($request->getQuery('client_id'));
67+
$this->authorizeForm->setData($request->getQuery());
68+
$client = $this->server->getStorage('client')->getClientDetails($request->getQuery('client_id'));
5369

5470
$this->getEventManager()->trigger('authorize.post', $this);
5571

56-
return ['form' => $form, 'appname' => $client['name']];
72+
return ['form' => $this->authorizeForm, 'appname' => $client['name']];
5773
}
5874

5975
public function tokenAction()
6076
{
61-
$server = $this->getServiceLocator()->get('OAuth2Server\Server');
62-
$request = Request::createFromRequest($this->getRequest());
63-
$response = $server->handleTokenRequest($request, $this->getResponse());
77+
$request = Request::createFromRequest($this->getRequest());
78+
$response = $this->server->handleTokenRequest($request, $this->getResponse());
6479

6580
return new JsonModel($response->getContent());
6681
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace OAuth2Server\Controller\Factory;
4+
5+
use Zend\ServiceManager\FactoryInterface;
6+
use OAuth2Server\Controller\AuthorizeController;
7+
use Interop\Container\ContainerInterface;
8+
use Zend\ServiceManager\ServiceLocatorInterface;
9+
10+
class AuthorizeControllerFactory implements FactoryInterface
11+
{
12+
public function createService(ServiceLocatorInterface $serviceLocator)
13+
{
14+
return $this($serviceLocator->getServiceLocator(), AuthorizeController::class);
15+
}
16+
17+
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
18+
{
19+
return new AuthorizeController(
20+
$container->get('OAuth2Server\Server'),
21+
$container->get('OAuth2Server\AuthorizeForm')
22+
);
23+
}
24+
}

src/OAuth2Server/Form/AuthorizeForm.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,47 +16,47 @@ public function __construct($name, $csrfSalt)
1616

1717
$this->add(
1818
[
19-
'name' => 'client_id',
19+
'name' => 'client_id',
2020
'attributes' => [
2121
'type' => 'hidden'
2222
]
2323
]
2424
);
2525
$this->add(
2626
[
27-
'name' => 'redirect_uri',
27+
'name' => 'redirect_uri',
2828
'attributes' => [
2929
'type' => 'hidden'
3030
]
3131
]
3232
);
3333
$this->add(
3434
[
35-
'name' => 'response_type',
35+
'name' => 'response_type',
3636
'attributes' => [
3737
'type' => 'hidden'
3838
]
3939
]
4040
);
4141
$this->add(
4242
[
43-
'name' => 'state',
43+
'name' => 'state',
4444
'attributes' => [
4545
'type' => 'hidden'
4646
]
4747
]
4848
);
4949
$this->add(
5050
[
51-
'name' => 'scope',
51+
'name' => 'scope',
5252
'attributes' => [
5353
'type' => 'hidden'
5454
]
5555
]
5656
);
5757
$this->add(
5858
[
59-
'name' => 'authorize',
59+
'name' => 'authorize',
6060
'attributes' => [
6161
'type' => 'submit',
6262
'class' => 'btn btn-primary',
@@ -67,7 +67,7 @@ public function __construct($name, $csrfSalt)
6767

6868
$this->add(
6969
[
70-
'name' => 'deny',
70+
'name' => 'deny',
7171
'attributes' => [
7272
'type' => 'submit',
7373
'class' => 'btn btn-danger',

0 commit comments

Comments
 (0)