gds-sso 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source "http://rubygems.org"
2
+ source 'https://gems.gemfury.com/vo6ZrmjBQu5szyywDszE/'
2
3
 
3
4
  # Specify your gem's dependencies in gds-sso.gemspec
4
5
  gemspec
data/lib/gds-sso.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require 'rails'
2
2
 
3
3
  require 'gds-sso/config'
4
- require 'gds-sso/omniauth_strategy'
5
4
  require 'gds-sso/warden_config'
5
+ require 'omniauth-gds'
6
6
 
7
7
  module GDS
8
8
  module SSO
@@ -24,7 +24,13 @@ module GDS
24
24
  config.before_eager_load { |app| app.reload_routes! }
25
25
 
26
26
  config.app_middleware.use ::OmniAuth::Builder do
27
- provider :gds, GDS::SSO::Config.oauth_id, GDS::SSO::Config.oauth_secret
27
+ provider :gds, GDS::SSO::Config.oauth_id, GDS::SSO::Config.oauth_secret,
28
+ client_options: {
29
+ site: GDS::SSO::Config.oauth_root_url,
30
+ authorize_url: "#{GDS::SSO::Config.oauth_root_url}/oauth/authorize",
31
+ token_url: "#{GDS::SSO::Config.oauth_root_url}/oauth/access_token",
32
+ ssl: { verify: false }
33
+ }
28
34
  end
29
35
 
30
36
  def self.use_mock_strategies?
data/lib/gds-sso/user.rb CHANGED
@@ -14,7 +14,7 @@ module GDS
14
14
 
15
15
  module User
16
16
  def self.user_params_from_auth_hash(auth_hash)
17
- {'uid' => auth_hash['uid'], 'email' => auth_hash['user_info']['email'], 'name' => auth_hash['user_info']['name'], 'version' => auth_hash['extra']['user_hash']['version']}
17
+ {'uid' => auth_hash['uid'], 'email' => auth_hash['info']['email'], 'name' => auth_hash['info']['name']}
18
18
  end
19
19
 
20
20
  extend ActiveSupport::Concern
@@ -1,5 +1,5 @@
1
1
  module GDS
2
2
  module SSO
3
- VERSION = "0.5.4"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
@@ -1,5 +1,4 @@
1
1
  require 'warden'
2
- require 'omniauth/oauth'
3
2
 
4
3
  Warden::Manager.serialize_into_session do |user|
5
4
  user.respond_to?(:uid) ? user.uid : nil
@@ -6,4 +6,4 @@ DELETE FROM `users`;
6
6
 
7
7
  -- Setup fixture data
8
8
  INSERT INTO `oauth_applications` VALUES (1,'GDS_SSO integration test','gds-sso-test','secret','http://www.example-client.com/auth/gds/callback','2012-04-19 13:26:54','2012-04-19 13:26:54');
9
- INSERT INTO `users` VALUES (1,'test@example-client.com','$2a$04$MdMkVFwTq5GLJJkHS8GLIe6dK1.C4ozzba5ZS5Ks2b/NenVsMGGRW',NULL,NULL,0,NULL,NULL,NULL,NULL,0,NULL,'2012-04-19 13:26:54','2012-04-19 13:26:54',NULL,'Test User','integration-uid');
9
+ INSERT INTO `users` (id, email, encrypted_password, created_at, updated_at, name, uid, is_admin) VALUES (1,'test@example-client.com','$2a$04$MdMkVFwTq5GLJJkHS8GLIe6dK1.C4ozzba5ZS5Ks2b/NenVsMGGRW','2012-04-19 13:26:54','2012-04-19 13:26:54','Test User','integration-uid', 0);
@@ -1389,3 +1389,339 @@ Started GET "/restricted" for 127.0.0.1 at 2012-05-11 15:59:02 +0000
1389
1389
  Processing by ExampleController#restricted as JSON
1390
1390
  Authenticating with gds_sso_api_access strategy
1391
1391
  Completed 200 OK in 1ms (Views: 0.5ms)
1392
+
1393
+
1394
+ Started GET "/" for 127.0.0.1 at 2012-06-11 16:13:57 +0000
1395
+ Processing by ExampleController#index as HTML
1396
+ Rendered text template (0.0ms)
1397
+ Completed 200 OK in 48ms (Views: 47.5ms)
1398
+
1399
+
1400
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:58 +0000
1401
+ Processing by ExampleController#restricted as HTML
1402
+ Authenticating with gds_sso strategy
1403
+ Completed in 1ms
1404
+
1405
+
1406
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-11 16:13:58 +0000
1407
+
1408
+
1409
+ Started GET "/auth/gds/callback?code=p73LMkRgOXEF8ErideRXIEK6EnHPPkoCFopUg65tMpng51lb" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1410
+ Processing by AuthenticationsController#callback as HTML
1411
+ Parameters: {"code"=>"p73LMkRgOXEF8ErideRXIEK6EnHPPkoCFopUg65tMpng51lb"}
1412
+ Authenticating with gds_sso strategy
1413
+ Redirected to http://www.example-client.com/restricted
1414
+ Completed 302 Found in 1ms
1415
+
1416
+
1417
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1418
+ Processing by ExampleController#restricted as HTML
1419
+ Completed 200 OK in 1ms (Views: 0.5ms)
1420
+
1421
+
1422
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1423
+ Processing by ExampleController#restricted as HTML
1424
+ Authenticating with gds_sso strategy
1425
+ Completed in 0ms
1426
+
1427
+
1428
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1429
+
1430
+
1431
+ Started GET "/auth/gds/callback?code=1QYBpw8JIMJ4IxPWKwOnx3g2WVN62Sl89CQsBUYOwopsYuXX" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1432
+ Processing by AuthenticationsController#callback as HTML
1433
+ Parameters: {"code"=>"1QYBpw8JIMJ4IxPWKwOnx3g2WVN62Sl89CQsBUYOwopsYuXX"}
1434
+ Authenticating with gds_sso strategy
1435
+ Redirected to http://www.example-client.com/restricted
1436
+ Completed 302 Found in 1ms
1437
+
1438
+
1439
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1440
+ Processing by ExampleController#restricted as HTML
1441
+ Completed 200 OK in 1ms (Views: 0.6ms)
1442
+
1443
+
1444
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1445
+ Processing by ExampleController#restricted as HTML
1446
+ Authenticating with gds_sso strategy
1447
+ Completed in 0ms
1448
+
1449
+
1450
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1451
+
1452
+
1453
+ Started GET "/auth/gds/callback?code=VPCSnPRSAac6iZp9Wbrpae83Gw15fjc0N0u08MFBToGSTtCv" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1454
+ Processing by AuthenticationsController#callback as HTML
1455
+ Parameters: {"code"=>"VPCSnPRSAac6iZp9Wbrpae83Gw15fjc0N0u08MFBToGSTtCv"}
1456
+ Authenticating with gds_sso strategy
1457
+ Redirected to http://www.example-client.com/restricted
1458
+ Completed 302 Found in 1ms
1459
+
1460
+
1461
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1462
+ Processing by ExampleController#restricted as HTML
1463
+ Completed 200 OK in 1ms (Views: 0.4ms)
1464
+
1465
+
1466
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1467
+ Processing by ExampleController#restricted as JSON
1468
+ Authenticating with gds_sso_api_access strategy
1469
+ Completed in 69ms
1470
+
1471
+
1472
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:13:59 +0000
1473
+ Processing by ExampleController#restricted as JSON
1474
+ Authenticating with gds_sso_api_access strategy
1475
+ Completed 200 OK in 1ms (Views: 0.5ms)
1476
+
1477
+
1478
+ Started GET "/" for 127.0.0.1 at 2012-06-11 16:14:34 +0000
1479
+ Processing by ExampleController#index as HTML
1480
+ Rendered text template (0.0ms)
1481
+ Completed 200 OK in 48ms (Views: 47.8ms)
1482
+
1483
+
1484
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:35 +0000
1485
+ Processing by ExampleController#restricted as HTML
1486
+ Authenticating with gds_sso strategy
1487
+ Completed in 1ms
1488
+
1489
+
1490
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-11 16:14:35 +0000
1491
+
1492
+
1493
+ Started GET "/auth/gds/callback?code=7e49b29c459a8f21d98adeb9d257a4d87928bf1fab1da079ee6b15355f9f6a1d" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1494
+ Processing by AuthenticationsController#callback as HTML
1495
+ Parameters: {"code"=>"7e49b29c459a8f21d98adeb9d257a4d87928bf1fab1da079ee6b15355f9f6a1d"}
1496
+ Authenticating with gds_sso strategy
1497
+ Redirected to http://www.example-client.com/restricted
1498
+ Completed 302 Found in 1ms
1499
+
1500
+
1501
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1502
+ Processing by ExampleController#restricted as HTML
1503
+ Completed 200 OK in 1ms (Views: 0.5ms)
1504
+
1505
+
1506
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1507
+ Processing by ExampleController#restricted as HTML
1508
+ Authenticating with gds_sso strategy
1509
+ Completed in 0ms
1510
+
1511
+
1512
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1513
+
1514
+
1515
+ Started GET "/auth/gds/callback?code=a379d659afad615d0c8f53618942cf7ec5745c9807dd56f74bf8299720f33017" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1516
+ Processing by AuthenticationsController#callback as HTML
1517
+ Parameters: {"code"=>"a379d659afad615d0c8f53618942cf7ec5745c9807dd56f74bf8299720f33017"}
1518
+ Authenticating with gds_sso strategy
1519
+ Redirected to http://www.example-client.com/restricted
1520
+ Completed 302 Found in 1ms
1521
+
1522
+
1523
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1524
+ Processing by ExampleController#restricted as HTML
1525
+ Completed 200 OK in 1ms (Views: 0.6ms)
1526
+
1527
+
1528
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1529
+ Processing by ExampleController#restricted as HTML
1530
+ Authenticating with gds_sso strategy
1531
+ Completed in 0ms
1532
+
1533
+
1534
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1535
+
1536
+
1537
+ Started GET "/auth/gds/callback?code=0c262328cc615d4c88e4e2435e9ee63a5502f4baa8f80438a07ecf1ed57c1eed" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1538
+ Processing by AuthenticationsController#callback as HTML
1539
+ Parameters: {"code"=>"0c262328cc615d4c88e4e2435e9ee63a5502f4baa8f80438a07ecf1ed57c1eed"}
1540
+ Authenticating with gds_sso strategy
1541
+ Redirected to http://www.example-client.com/restricted
1542
+ Completed 302 Found in 1ms
1543
+
1544
+
1545
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1546
+ Processing by ExampleController#restricted as HTML
1547
+ Completed 200 OK in 1ms (Views: 0.3ms)
1548
+
1549
+
1550
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1551
+ Processing by ExampleController#restricted as JSON
1552
+ Authenticating with gds_sso_api_access strategy
1553
+ Completed in 57ms
1554
+
1555
+
1556
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-11 16:14:36 +0000
1557
+ Processing by ExampleController#restricted as JSON
1558
+ Authenticating with gds_sso_api_access strategy
1559
+ Completed 200 OK in 1ms (Views: 0.5ms)
1560
+
1561
+
1562
+ Started GET "/" for 127.0.0.1 at 2012-06-12 15:18:24 +0000
1563
+ Processing by ExampleController#index as HTML
1564
+ Rendered text template (0.0ms)
1565
+ Completed 200 OK in 48ms (Views: 47.8ms)
1566
+
1567
+
1568
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:25 +0000
1569
+ Processing by ExampleController#restricted as HTML
1570
+ Authenticating with gds_sso strategy
1571
+ Completed in 89ms
1572
+
1573
+
1574
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-12 15:18:25 +0000
1575
+
1576
+
1577
+ Started GET "/auth/gds/callback?code=I9YRVyM5xAFBIWdzgJXzFdp0m393iBveFAfEqAlXrsYwl1Bd" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1578
+ Processing by AuthenticationsController#callback as HTML
1579
+ Parameters: {"code"=>"I9YRVyM5xAFBIWdzgJXzFdp0m393iBveFAfEqAlXrsYwl1Bd"}
1580
+ Authenticating with gds_sso strategy
1581
+ Redirected to http://www.example-client.com/restricted
1582
+ Completed 302 Found in 1ms
1583
+
1584
+
1585
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1586
+ Processing by ExampleController#restricted as HTML
1587
+ Completed 200 OK in 1ms (Views: 0.5ms)
1588
+
1589
+
1590
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1591
+ Processing by ExampleController#restricted as HTML
1592
+ Authenticating with gds_sso strategy
1593
+ Completed in 0ms
1594
+
1595
+
1596
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1597
+
1598
+
1599
+ Started GET "/auth/gds/callback?code=hrttBREqJ5jCLBLwSiBEDmCKakeyZsHtbxpCDzcfC2Lk6FpI" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1600
+ Processing by AuthenticationsController#callback as HTML
1601
+ Parameters: {"code"=>"hrttBREqJ5jCLBLwSiBEDmCKakeyZsHtbxpCDzcfC2Lk6FpI"}
1602
+ Authenticating with gds_sso strategy
1603
+ Redirected to http://www.example-client.com/restricted
1604
+ Completed 302 Found in 1ms
1605
+
1606
+
1607
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1608
+ Processing by ExampleController#restricted as HTML
1609
+ Completed 200 OK in 1ms (Views: 0.5ms)
1610
+
1611
+
1612
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1613
+ Processing by ExampleController#restricted as HTML
1614
+ Authenticating with gds_sso strategy
1615
+ Completed in 0ms
1616
+
1617
+
1618
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1619
+
1620
+
1621
+ Started GET "/auth/gds/callback?code=mc9tvDPRt34yjVFlxzpW1YeypbgXVYHwDDBHub84G2ZjNCBh" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1622
+ Processing by AuthenticationsController#callback as HTML
1623
+ Parameters: {"code"=>"mc9tvDPRt34yjVFlxzpW1YeypbgXVYHwDDBHub84G2ZjNCBh"}
1624
+ Authenticating with gds_sso strategy
1625
+ Redirected to http://www.example-client.com/restricted
1626
+ Completed 302 Found in 1ms
1627
+
1628
+
1629
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1630
+ Processing by ExampleController#restricted as HTML
1631
+ Completed 200 OK in 1ms (Views: 0.5ms)
1632
+
1633
+
1634
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:26 +0000
1635
+ Processing by ExampleController#restricted as JSON
1636
+ Authenticating with gds_sso_api_access strategy
1637
+ Completed in 14ms
1638
+
1639
+
1640
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:27 +0000
1641
+ Processing by ExampleController#restricted as JSON
1642
+ Authenticating with gds_sso_api_access strategy
1643
+ Completed 200 OK in 1ms (Views: 0.6ms)
1644
+
1645
+
1646
+ Started GET "/" for 127.0.0.1 at 2012-06-12 15:18:56 +0000
1647
+ Processing by ExampleController#index as HTML
1648
+ Rendered text template (0.0ms)
1649
+ Completed 200 OK in 49ms (Views: 48.2ms)
1650
+
1651
+
1652
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:57 +0000
1653
+ Processing by ExampleController#restricted as HTML
1654
+ Authenticating with gds_sso strategy
1655
+ Completed in 56ms
1656
+
1657
+
1658
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-12 15:18:57 +0000
1659
+
1660
+
1661
+ Started GET "/auth/gds/callback?code=69abba163874fae835038e580701ba8f309d1b701c275e715f3b83c0046dcd26" for 127.0.0.1 at 2012-06-12 15:18:57 +0000
1662
+ Processing by AuthenticationsController#callback as HTML
1663
+ Parameters: {"code"=>"69abba163874fae835038e580701ba8f309d1b701c275e715f3b83c0046dcd26"}
1664
+ Authenticating with gds_sso strategy
1665
+ Redirected to http://www.example-client.com/restricted
1666
+ Completed 302 Found in 1ms
1667
+
1668
+
1669
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1670
+ Processing by ExampleController#restricted as HTML
1671
+ Completed 200 OK in 1ms (Views: 0.5ms)
1672
+
1673
+
1674
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1675
+ Processing by ExampleController#restricted as HTML
1676
+ Authenticating with gds_sso strategy
1677
+ Completed in 0ms
1678
+
1679
+
1680
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1681
+
1682
+
1683
+ Started GET "/auth/gds/callback?code=cce3e9f06747fcfc99186a68f9dbf912524d7a187e75de000f7f69a03658ace2" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1684
+ Processing by AuthenticationsController#callback as HTML
1685
+ Parameters: {"code"=>"cce3e9f06747fcfc99186a68f9dbf912524d7a187e75de000f7f69a03658ace2"}
1686
+ Authenticating with gds_sso strategy
1687
+ Redirected to http://www.example-client.com/restricted
1688
+ Completed 302 Found in 1ms
1689
+
1690
+
1691
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1692
+ Processing by ExampleController#restricted as HTML
1693
+ Completed 200 OK in 1ms (Views: 0.5ms)
1694
+
1695
+
1696
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1697
+ Processing by ExampleController#restricted as HTML
1698
+ Authenticating with gds_sso strategy
1699
+ Completed in 0ms
1700
+
1701
+
1702
+ Started GET "/auth/gds" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1703
+
1704
+
1705
+ Started GET "/auth/gds/callback?code=a60940acfd9e76e7cedc9d07cf00ddf37fc47b1b38e9f8bc15939cebc09b4a1e" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1706
+ Processing by AuthenticationsController#callback as HTML
1707
+ Parameters: {"code"=>"a60940acfd9e76e7cedc9d07cf00ddf37fc47b1b38e9f8bc15939cebc09b4a1e"}
1708
+ Authenticating with gds_sso strategy
1709
+ Redirected to http://www.example-client.com/restricted
1710
+ Completed 302 Found in 1ms
1711
+
1712
+
1713
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1714
+ Processing by ExampleController#restricted as HTML
1715
+ Completed 200 OK in 1ms (Views: 0.3ms)
1716
+
1717
+
1718
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1719
+ Processing by ExampleController#restricted as JSON
1720
+ Authenticating with gds_sso_api_access strategy
1721
+ Completed in 12ms
1722
+
1723
+
1724
+ Started GET "/restricted" for 127.0.0.1 at 2012-06-12 15:18:58 +0000
1725
+ Processing by ExampleController#restricted as JSON
1726
+ Authenticating with gds_sso_api_access strategy
1727
+ Completed 200 OK in 1ms (Views: 0.6ms)
@@ -8,7 +8,7 @@ describe "authenticating with sign-on-o-tron" do
8
8
 
9
9
  describe "a protected page" do
10
10
  it "redirects to /auth/gds" do
11
- get "/"
11
+ get "/restricted"
12
12
 
13
13
  response.code.should == "302"
14
14
  response.location.should == "http://www.example.com/auth/gds"
@@ -20,7 +20,7 @@ describe "authenticating with sign-on-o-tron" do
20
20
  get "/auth/gds"
21
21
 
22
22
  response.code.should == "302"
23
- response.location.should =~ /^http:\/\/localhost:3000\/oauth\/authorize/
23
+ response.location.should =~ /^http:\/\/localhost:4567\/oauth\/authorize/
24
24
  end
25
25
 
26
26
  it "authenticates with a username and password and redirects back to the app" do
data/test/user_test.rb CHANGED
@@ -7,13 +7,13 @@ class TestUser < Test::Unit::TestCase
7
7
  'provider' => 'gds',
8
8
  'uid' => 'abcde',
9
9
  'credentials' => {'token' => 'abcdefg', 'secret' => 'abcdefg'},
10
- 'user_info' => {'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk'},
11
- 'extra' => {'user_hash' => {'uid' => 'abcde', 'version' => 1, 'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk', 'github' => 'fidothe', 'twitter' => 'fidothe'}}
10
+ 'info' => {'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk'},
11
+ 'extra' => {'user' => {'uid' => 'abcde', 'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk'}}
12
12
  }
13
13
  end
14
14
 
15
15
  def test_user_params_creation
16
- expected = {'uid' => 'abcde', 'version' => 1, 'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk'}
16
+ expected = {'uid' => 'abcde', 'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk'}
17
17
  assert_equal expected, GDS::SSO::User.user_params_from_auth_hash(@auth_hash)
18
18
  end
19
19
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: gds-sso
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.5.4
5
+ version: 0.6.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Matt Patterson
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2012-05-11 00:00:00 Z
14
+ date: 2012-06-12 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -29,48 +29,26 @@ dependencies:
29
29
  requirement: &id002 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
- - - "="
32
+ - - ~>
33
33
  - !ruby/object:Gem::Version
34
- version: 1.0.6
34
+ version: "1.2"
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: *id002
38
38
  - !ruby/object:Gem::Dependency
39
- name: oauth2
39
+ name: omniauth-gds
40
40
  requirement: &id003 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - "="
44
44
  - !ruby/object:Gem::Version
45
- version: 0.5.2
45
+ version: 0.0.2
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: oa-oauth
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ~>
55
- - !ruby/object:Gem::Version
56
- version: 0.3.2
57
- type: :runtime
58
- prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: oa-core
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ~>
66
- - !ruby/object:Gem::Version
67
- version: 0.3.2
68
- type: :runtime
69
- prerelease: false
70
- version_requirements: *id005
71
49
  - !ruby/object:Gem::Dependency
72
50
  name: rack-accept
73
- requirement: &id006 !ruby/object:Gem::Requirement
51
+ requirement: &id004 !ruby/object:Gem::Requirement
74
52
  none: false
75
53
  requirements:
76
54
  - - ~>
@@ -78,10 +56,10 @@ dependencies:
78
56
  version: 0.4.4
79
57
  type: :runtime
80
58
  prerelease: false
81
- version_requirements: *id006
59
+ version_requirements: *id004
82
60
  - !ruby/object:Gem::Dependency
83
61
  name: rack
84
- requirement: &id007 !ruby/object:Gem::Requirement
62
+ requirement: &id005 !ruby/object:Gem::Requirement
85
63
  none: false
86
64
  requirements:
87
65
  - - "="
@@ -89,10 +67,10 @@ dependencies:
89
67
  version: 1.3.5
90
68
  type: :runtime
91
69
  prerelease: false
92
- version_requirements: *id007
70
+ version_requirements: *id005
93
71
  - !ruby/object:Gem::Dependency
94
72
  name: rake
95
- requirement: &id008 !ruby/object:Gem::Requirement
73
+ requirement: &id006 !ruby/object:Gem::Requirement
96
74
  none: false
97
75
  requirements:
98
76
  - - ~>
@@ -100,10 +78,10 @@ dependencies:
100
78
  version: 0.9.2
101
79
  type: :development
102
80
  prerelease: false
103
- version_requirements: *id008
81
+ version_requirements: *id006
104
82
  - !ruby/object:Gem::Dependency
105
83
  name: mocha
106
- requirement: &id009 !ruby/object:Gem::Requirement
84
+ requirement: &id007 !ruby/object:Gem::Requirement
107
85
  none: false
108
86
  requirements:
109
87
  - - ~>
@@ -111,10 +89,10 @@ dependencies:
111
89
  version: 0.9.0
112
90
  type: :development
113
91
  prerelease: false
114
- version_requirements: *id009
92
+ version_requirements: *id007
115
93
  - !ruby/object:Gem::Dependency
116
94
  name: capybara
117
- requirement: &id010 !ruby/object:Gem::Requirement
95
+ requirement: &id008 !ruby/object:Gem::Requirement
118
96
  none: false
119
97
  requirements:
120
98
  - - ~>
@@ -122,10 +100,10 @@ dependencies:
122
100
  version: 1.1.2
123
101
  type: :development
124
102
  prerelease: false
125
- version_requirements: *id010
103
+ version_requirements: *id008
126
104
  - !ruby/object:Gem::Dependency
127
105
  name: rspec-rails
128
- requirement: &id011 !ruby/object:Gem::Requirement
106
+ requirement: &id009 !ruby/object:Gem::Requirement
129
107
  none: false
130
108
  requirements:
131
109
  - - ~>
@@ -133,10 +111,10 @@ dependencies:
133
111
  version: 2.9.0
134
112
  type: :development
135
113
  prerelease: false
136
- version_requirements: *id011
114
+ version_requirements: *id009
137
115
  - !ruby/object:Gem::Dependency
138
116
  name: capybara-mechanize
139
- requirement: &id012 !ruby/object:Gem::Requirement
117
+ requirement: &id010 !ruby/object:Gem::Requirement
140
118
  none: false
141
119
  requirements:
142
120
  - - ~>
@@ -144,10 +122,10 @@ dependencies:
144
122
  version: 0.3.0
145
123
  type: :development
146
124
  prerelease: false
147
- version_requirements: *id012
125
+ version_requirements: *id010
148
126
  - !ruby/object:Gem::Dependency
149
127
  name: combustion
150
- requirement: &id013 !ruby/object:Gem::Requirement
128
+ requirement: &id011 !ruby/object:Gem::Requirement
151
129
  none: false
152
130
  requirements:
153
131
  - - ~>
@@ -155,10 +133,10 @@ dependencies:
155
133
  version: 0.3.2
156
134
  type: :development
157
135
  prerelease: false
158
- version_requirements: *id013
136
+ version_requirements: *id011
159
137
  - !ruby/object:Gem::Dependency
160
138
  name: gem_publisher
161
- requirement: &id014 !ruby/object:Gem::Requirement
139
+ requirement: &id012 !ruby/object:Gem::Requirement
162
140
  none: false
163
141
  requirements:
164
142
  - - ~>
@@ -166,10 +144,10 @@ dependencies:
166
144
  version: 1.0.0
167
145
  type: :development
168
146
  prerelease: false
169
- version_requirements: *id014
147
+ version_requirements: *id012
170
148
  - !ruby/object:Gem::Dependency
171
149
  name: thor
172
- requirement: &id015 !ruby/object:Gem::Requirement
150
+ requirement: &id013 !ruby/object:Gem::Requirement
173
151
  none: false
174
152
  requirements:
175
153
  - - "="
@@ -177,7 +155,7 @@ dependencies:
177
155
  version: 0.14.6
178
156
  type: :development
179
157
  prerelease: false
180
- version_requirements: *id015
158
+ version_requirements: *id013
181
159
  description: Client for GDS' OAuth 2-based SSO
182
160
  email:
183
161
  - matt@constituentparts.com
@@ -199,14 +177,11 @@ files:
199
177
  - lib/gds-sso/user.rb
200
178
  - lib/gds-sso/warden_config.rb
201
179
  - lib/gds-sso/api_access.rb
202
- - lib/gds-sso/omniauth_strategy.rb
203
180
  - lib/gds-sso/version.rb
204
181
  - README.md
205
182
  - Gemfile
206
183
  - Rakefile
207
184
  - test/test_helper.rb
208
- - test/omniauth_strategy_test.rb
209
- - test/gds_sso_strategy_test.rb
210
185
  - test/user_test.rb
211
186
  - spec/requests/end_to_end_spec.rb
212
187
  - spec/requests/authentication_soot2.rb
@@ -239,7 +214,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
239
214
  requirements:
240
215
  - - ">="
241
216
  - !ruby/object:Gem::Version
242
- hash: -4356684067939052907
217
+ hash: 2754881002430173909
243
218
  segments:
244
219
  - 0
245
220
  version: "0"
@@ -248,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
248
223
  requirements:
249
224
  - - ">="
250
225
  - !ruby/object:Gem::Version
251
- hash: -4356684067939052907
226
+ hash: 2754881002430173909
252
227
  segments:
253
228
  - 0
254
229
  version: "0"
@@ -261,8 +236,6 @@ specification_version: 3
261
236
  summary: Client for GDS' OAuth 2-based SSO
262
237
  test_files:
263
238
  - test/test_helper.rb
264
- - test/omniauth_strategy_test.rb
265
- - test/gds_sso_strategy_test.rb
266
239
  - test/user_test.rb
267
240
  - spec/requests/end_to_end_spec.rb
268
241
  - spec/requests/authentication_soot2.rb
@@ -1,54 +0,0 @@
1
- require 'omniauth/oauth'
2
- require 'multi_json'
3
-
4
- # Authenticate to GDS with OAuth 2.0 and retrieve
5
- # basic user information.
6
- #
7
- # @example Basic Usage
8
- # use OmniAuth::Builder :gds, 'API Key', 'Secret Key'
9
-
10
- class OmniAuth::Strategies::Gds < OmniAuth::Strategies::OAuth2
11
-
12
- # @param [Rack Application] app standard middleware application parameter
13
- # @param [String] api_key the application id as [provided by GDS]
14
- # @param [String] secret_key the application secret as [provided by Bitly]
15
- def initialize(app, api_key = nil, secret_key = nil, options = {}, &block)
16
- client_options = {
17
- :site => "#{GDS::SSO::Config.oauth_root_url}/",
18
- :authorize_url => "#{GDS::SSO::Config.oauth_root_url}/oauth/authorize",
19
- :token_url => "#{GDS::SSO::Config.oauth_root_url}/oauth/access_token",
20
- :access_token_url => "#{GDS::SSO::Config.oauth_root_url}/oauth/access_token",
21
- :ssl => {
22
- :verify => false
23
- }
24
- }
25
-
26
- super(app, :gds, api_key, secret_key, client_options, options, &block)
27
- end
28
-
29
- def call(env)
30
- if GDS::SSO::ApiAccess.api_call?(env)
31
- @app.call(env)
32
- else
33
- super
34
- end
35
- end
36
-
37
- protected
38
-
39
- def fetch_user_data
40
- @access_token.get('/user.json').body
41
- end
42
-
43
- def user_hash
44
- @user_hash ||= MultiJson.decode(fetch_user_data)['user']
45
- end
46
-
47
- def build_auth_hash
48
- {'uid' => user_hash['uid'], 'user_info' => {'name' => user_hash['name'], 'email' => user_hash['email']}, 'extra' => {'user_hash' => user_hash}}
49
- end
50
-
51
- def auth_hash
52
- OmniAuth::Utils.deep_merge(super, build_auth_hash)
53
- end
54
- end
@@ -1,19 +0,0 @@
1
- require 'test_helper'
2
- require 'json'
3
- require 'gds-sso'
4
- require 'gds-sso/omniauth_strategy'
5
- require 'capybara/dsl'
6
-
7
- class TestGdsSsoStrategy < Test::Unit::TestCase
8
- include OmniAuth::Test::StrategyTestCase
9
- include Capybara::DSL
10
-
11
- def strategy
12
- # return the parameters to a Rack::Builder map call:
13
- [OmniAuth::Strategies::Gds.new, 'client_id', 'client_secret']
14
- end
15
-
16
- def setup
17
- # post '/auth/gds_sso/callback', :user => { 'name' => 'Dylan', 'id' => '445' }
18
- end
19
- end
@@ -1,35 +0,0 @@
1
- require 'test_helper'
2
- require 'json'
3
- require 'gds-sso'
4
- require 'gds-sso/omniauth_strategy'
5
-
6
- class TestOmniAuthStrategy < Test::Unit::TestCase
7
- def setup
8
- @app = stub("app")
9
- @strategy = OmniAuth::Strategies::Gds.new(@app, :gds, 'client_id', 'client_secret')
10
- @strategy.stubs(:fetch_user_data).returns({ 'user' => {
11
- 'uid' => 'abcde',
12
- 'version' => 1,
13
- 'name' => 'Matt Patterson',
14
- 'email' => 'matt@alphagov.co.uk',
15
- 'github' => 'fidothe',
16
- 'twitter' => 'fidothe'
17
- }}.to_json)
18
- end
19
-
20
- def test_build_auth_hash_returns_name_and_email
21
- assert_equal 'Matt Patterson', @strategy.send(:build_auth_hash)['user_info']['name']
22
- assert_equal 'matt@alphagov.co.uk', @strategy.send(:build_auth_hash)['user_info']['email']
23
- end
24
-
25
- def test_build_auth_hash_contains_extra_info
26
- expected = {'uid' => 'abcde', 'version' => 1, 'name' => 'Matt Patterson', 'email' => 'matt@alphagov.co.uk', 'github' => 'fidothe', 'twitter' => 'fidothe'}
27
- assert_equal expected, @strategy.send(:build_auth_hash)['extra']['user_hash']
28
- end
29
-
30
- def test_oauth_bypassed_if_json_is_accepted_by_request
31
- @app.expects(:call)
32
- rack_env = { "HTTP_ACCEPT" => 'application/json' }
33
- @strategy.call(rack_env)
34
- end
35
- end