bmwcarit / silex-jira-oauth-provider
一个允许使用Atlassian JIRA进行OAuth认证的Silex服务提供程序
Requires
- guzzlehttp/guzzle: ~5.0
- guzzlehttp/oauth-subscriber: 0.2.0
- monolog/monolog: ~1.0
- silex/silex: ~1.2
- symfony/security: ~2.3,<2.7
This package is not auto-updated.
Last update: 2024-09-28 17:12:32 UTC
README
Silex JIRA OAuth提供程序提供了一个简单的机制,使您的应用程序能够使用[Atlassian JIRA REST API](https://developer.atlassian.com/display/JIRADEV/JIRA+REST+APIs)而无需传输密码。而不是使用基本认证,它使用JIRA的OAuth界面创建一个访问令牌。然后可以使用Guzzle HTTP客户端在JIRA中检索、修改和创建问题。
先决条件
为了使提供程序正常工作,您需要以下内容
- 一个运行的Atlassian JIRA服务器。
- 为具有配置了传入授权的通用应用程序创建一个应用程序链接(有关详细信息,请参阅[文档](https://confluence.atlassian.com/display/JIRA/Linking+to+Another+Application))。
安装
您可以通过Composer安装silex jira oauth提供程序
composer require bmwcarit/silex-jira-oauth-provider "dev-master"
由于提供程序包含必要的bug修复,因此当前使用guzzlehttp/oauth-provider的dev-master版本。为了能够使用Composer提取此版本,您需要将项目的最小稳定性设置为"dev"
{
"minimum-stability": "dev"
}
使用方法
在您可以使用提供程序之前,您需要将其配置并注册到您的silex应用程序中。以下代码显示了必要的最常见配置选项
$app->register(new JiraOAuthServiceProvider(array(
'base_url' => 'https://www.yourcorp.com/jira/',
'private_key' => __DIR__ . '/jira.pem',
'consumer_key' => 'yoursecretkey',
)));
一旦提供程序被注册,您的应用程序将在/jira
上挂载一个新的控制器。要开始认证过程,只需打开名为jira-connect
的路由。您可以在代码中重定向
$app->redirect($app['url_generator']->generate('jira-connect'));
或者您可以在twig模板中添加链接。
<a href="{{ path('jira-connect') }}">Click here to authenticate with Jira</a>
认证成功后,提供程序将重定向到名为home
的路由,如果它不存在,则重定向到silex应用程序的/
。
您可以通过添加包含路由名称或URL的重定向参数来更改此行为,提供程序应在成功认证后重定向到该参数。例如
$app->redirect($app['url_generator']->generate('jira-connect',
array('redirect' => 'yourroute')));
或者在您的twig模板中
<a href="{{ path('jira-connect', {redirect: 'yourroute'}) }}">
Click here to authenticate with Jira</a>
认证成功后,您可以使用可用的Guzzle HTTP客户端和[Atlassian JIRA REST API](https://developer.atlassian.com/display/JIRADEV/JIRA+REST+APIs)。例如
$app['jira.oauth.client']->get('rest/api/2/priority');
配置选项
- base_url: 您的Atlassian JIRA服务器的基URL。(默认值:
https://:8181/
) - oauth_base_url: oauth插件的路径。Atlassian JIRA默认在此处提供OAuth API。(默认值:
plugins/servlet/oauth/
) - private_key: 认证您的应用程序与Atlassian JIRA的私钥文件的路径。(默认值:
''
) - consumer_key: 包含用于认证您的应用程序与Atlassian JIRA的消费者密钥的字符串。(默认值:
''
) - url_prefix.request_token: 请求新令牌的URL前缀。该前缀通过
base_url
和oauth_base_url
构造。此选项的默认值已与JIRA的默认值匹配。(默认值:request-token
) - url_prefix.authorization: 构造授权令牌的URL的前缀。该前缀通过
base_url
和oauth_base_url
构造。此选项的默认值已与JIRA的默认值匹配。(默认值:authorize?oauth_token=%s
) - url_prefix.access_token: 请求访问令牌的URL前缀。该前缀通过
base_url
和oauth_base_url
构造。此选项的默认值已与JIRA的默认值匹配。(默认值:access-token
) - route_name.callback: 处理来自Atlassian JIRA的回调的路由名称。当用户允许应用程序访问JIRA时,回调将被传输到JIRA,用户将被重定向到此URL。(默认值:
jira-callback
) - route_name.default_redirect: 成功认证后重定向用户的路由名称。此路由仅在未在
jira-connect
路由上设置重定向参数时使用。(默认值:home
) - automount: 如果设置为true,则提供者将自动将
jira-connect
和jira-callback
路由挂载到/jira
下。如果您将其设置为false,请确保您自己挂载控制器。为此,请简单地调用$app->mount('/yourpath', $app['jira.controller.provider']);
(默认值:true
)
许可证
silex-jira-oauth-provider遵循MIT许可证。
致谢
最初的工作基于Stan Lemon的[JIRA OAuth PHP示例](https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src/d625161454d1ca97b4515c6147b093fac9a68f7e/php/LICENSE?at=default)