|
41 | 41 | } |
42 | 42 | end |
43 | 43 |
|
| 44 | + let(:sni_route) { { |
| 45 | + "name" => "svc-name", |
| 46 | + "registration_interval" => "20s", |
| 47 | + "router_group" => "svc-router-group", |
| 48 | + "external_port" => 1024, |
| 49 | + "type" => "sni", |
| 50 | + "sni_port" => 5671, |
| 51 | + "sni_routable_san" => "svc-1.foobar.com", |
| 52 | + "terminate_frontend_tls" => true, |
| 53 | + "enable_backend_tls" => true |
| 54 | + } } |
| 55 | + |
44 | 56 | describe 'config/routing_api/certs/client.crt' do |
45 | 57 | let(:template) { job.template('config/routing_api/certs/client.crt') } |
46 | 58 | let(:links) do |
|
492 | 504 | context 'when uaa.tls_port is provided in the link' do |
493 | 505 | let(:uaa_link_properties) do |
494 | 506 | { |
495 | | - 'tls_port' => 9443, |
| 507 | + 'tls_port' => 9443, |
496 | 508 | } |
497 | 509 | end |
498 | 510 | it 'uses the link value' do |
|
511 | 523 | context 'when uaa.token_endpoint is provided in the link' do |
512 | 524 | let(:uaa_link_properties) do |
513 | 525 | { |
514 | | - 'token_endpoint' => 'link-uaa.service.cf.internal', |
| 526 | + 'token_endpoint' => 'link-uaa.service.cf.internal', |
515 | 527 | } |
516 | 528 | end |
517 | 529 | it 'uses the link value' do |
|
681 | 693 | end |
682 | 694 | end |
683 | 695 |
|
| 696 | + describe 'when type is sni and frontend_tls is enabled and sni_routable_san is provided' do |
| 697 | + before do |
| 698 | + merged_manifest_properties['route_registrar']['routes'][0] = sni_route |
| 699 | + merged_manifest_properties['nats'] = { 'fail_if_using_nats_without_tls' => false } |
| 700 | + end |
| 701 | + |
| 702 | + it 'should use the provided sni_routable_san' do |
| 703 | + rendered_hash = JSON.parse(template.render(merged_manifest_properties, consumes: links)) |
| 704 | + expect(rendered_hash['routes'][0]).to eq({ |
| 705 | + "name" => "svc-name", |
| 706 | + "registration_interval" => "20s", |
| 707 | + "router_group" => "svc-router-group", |
| 708 | + "external_port" => 1024, |
| 709 | + "type" => "sni", |
| 710 | + "sni_port" => 5671, |
| 711 | + "sni_routable_san" => "svc-1.foobar.com", |
| 712 | + "terminate_frontend_tls" => true, |
| 713 | + "enable_backend_tls" => true |
| 714 | + }) |
| 715 | + end |
| 716 | + end |
| 717 | + |
| 718 | + describe 'when type is sni and frontend_tls is disabled and sni_routable_san is provided' do |
| 719 | + before do |
| 720 | + merged_manifest_properties['route_registrar']['routes'][0] = sni_route |
| 721 | + merged_manifest_properties['route_registrar']['routes'][0]['terminate_frontend_tls'] = false |
| 722 | + merged_manifest_properties['nats'] = { 'fail_if_using_nats_without_tls' => false } |
| 723 | + end |
| 724 | + |
| 725 | + it 'raises an error for invalid sni_routable_san' do |
| 726 | + expect { template.render(merged_manifest_properties, consumes: links) }.to raise_error( |
| 727 | + RuntimeError, 'route_registrar.routes[0].route.sni_routable_san cannot be provided when type is sni and terminate_frontend_tls is disabled' |
| 728 | + ) |
| 729 | + end |
| 730 | + end |
| 731 | + |
| 732 | + describe 'when type is sni and frontend_tls is enabled and sni_routable_san is NOT provided' do |
| 733 | + before do |
| 734 | + merged_manifest_properties['route_registrar']['routes'][0] = sni_route |
| 735 | + merged_manifest_properties['route_registrar']['routes'][0]['sni_routable_san'] = '' |
| 736 | + merged_manifest_properties['nats'] = { 'fail_if_using_nats_without_tls' => false } |
| 737 | + end |
| 738 | + |
| 739 | + it 'raises an error for invalid sni_routable_san' do |
| 740 | + expect { template.render(merged_manifest_properties, consumes: links) }.to raise_error( |
| 741 | + RuntimeError, 'route_registrar.routes[0].route.sni_routable_san must be provided when type is sni and terminate_frontend_tls is enabled' |
| 742 | + ) |
| 743 | + end |
| 744 | + end |
| 745 | + |
684 | 746 | describe 'when tls is not enabled and the san is not provided' do |
685 | 747 | before do |
686 | 748 | merged_manifest_properties['route_registrar']['routes'][0].delete('tls_port') |
|
0 commit comments