sigaedu_api 2.1.0 → 2.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f748204477d9ca683bec64537a701603d19d0bb5a32e6fcc635213572ae8989
4
- data.tar.gz: 233bdda4e51c808e9014534ed6706b9cbad168d7a248337103d87fca74a00520
3
+ metadata.gz: 786eb0fa9f3bee1764481be9ab9b36cdf27cca7ec3dcacd5eaaa5e8c5723ad76
4
+ data.tar.gz: 1a236ea58c1e5b41a24507e1ac5525342749113f09d2cfee7a1b0bc1c671b788
5
5
  SHA512:
6
- metadata.gz: c7ac77291345ca1d7cf4510a873b59967785de55021ee6097025240ce3a141cc0b0d92fb1f267faef2cb0f14f4304c34f98e4aa28f1630a30ded1f416bdf706d
7
- data.tar.gz: de03006a88ed748281145f07eba62c70e8db26033cb40ab86c2a547cb21d44035063823e9a7dc354cb53ed022dd2fb6c8be24aed5fed1d6ff83ce007f1540c39
6
+ metadata.gz: 667ccc3214c3026e0b1970fc9158ff13d09c11ca4b8283d94c602e8cdc851c50d0f092e427ac62a6cfb389c40b38faf920aaef029031a724aeb5da1357008c4b
7
+ data.tar.gz: 45b4d451f1fd2d1bd86c27aa437e115c4505cc682d84c24655c39ab7142d3957dde53e78bf7e161f533ef05400dbfac56d3ce89e634ec769f6bacbf0acf3989c
data/.gitignore CHANGED
@@ -4,9 +4,11 @@
4
4
  /coverage/
5
5
  /doc/
6
6
  /pkg/
7
+ /*.gem
7
8
  /spec/reports/
8
9
  /tmp/
9
10
  /bin/exec
10
11
 
11
12
  # rspec failure tracking
12
13
  .rspec_status
14
+
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sigaedu_api (2.1.0)
4
+ sigaedu_api (2.1.1)
5
5
  json (>= 2.6, < 3.0)
6
6
  mechanize (>= 2.9, < 3.0)
7
7
  nokogiri (>= 1.15, < 2.0)
data/README.md CHANGED
@@ -33,6 +33,10 @@ student_data.get_data(student_id)
33
33
 
34
34
  As credenciais são usadas somente para autenticar a sessão no SIGA Edu. Os testes automatizados não acessam o sistema acadêmico.
35
35
 
36
+ ## TLS do SIGA Edu
37
+
38
+ O SIGA Edu atualmente não entrega toda a cadeia de certificados necessária para alguns ambientes Ruby. A gem inclui os certificados públicos RNP ICPEdu GR46 e GlobalSign Root R46 para completar essa cadeia, mantendo a verificação TLS e de hostname ativas.
39
+
36
40
  ## Desenvolvimento
37
41
 
38
42
  Depois de clonar o repositório, instale as dependências com `bundle install` e rode a suíte com:
@@ -1,9 +1,22 @@
1
+ require "openssl"
2
+
1
3
  module SigaeduApi
2
4
  class Api
3
5
  BASE_URL = "https://academico.ifms.edu.br/administrativo/".freeze
6
+ RNP_INTERMEDIATE_CERTIFICATE = File.expand_path("certificates/rnp_icpedu_gr46_ov_tls_ca_2025.pem", __dir__).freeze
7
+ GLOBALSIGN_ROOT_CERTIFICATE = File.expand_path("certificates/globalsign_root_r46.pem", __dir__).freeze
8
+
9
+ def self.default_cert_store
10
+ OpenSSL::X509::Store.new.tap do |store|
11
+ store.set_default_paths
12
+ store.add_file(RNP_INTERMEDIATE_CERTIFICATE)
13
+ store.add_file(GLOBALSIGN_ROOT_CERTIFICATE)
14
+ end
15
+ end
4
16
 
5
- def initialize(mechanize: Mechanize.new)
17
+ def initialize(mechanize: Mechanize.new, cert_store: self.class.default_cert_store)
6
18
  @mechanize = mechanize
19
+ @mechanize.agent.http.cert_store = cert_store
7
20
  @mechanize.get(BASE_URL)
8
21
  end
9
22
 
@@ -0,0 +1,31 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA
3
+ MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD
4
+ VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy
5
+ MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt
6
+ c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
7
+ AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ
8
+ OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG
9
+ vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud
10
+ 316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo
11
+ 0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE
12
+ y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF
13
+ zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE
14
+ +cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN
15
+ I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs
16
+ x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa
17
+ ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC
18
+ 4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
19
+ HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4
20
+ 7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg
21
+ JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti
22
+ 2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk
23
+ pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF
24
+ FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt
25
+ rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk
26
+ ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5
27
+ u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP
28
+ 4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6
29
+ N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3
30
+ vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6
31
+ -----END CERTIFICATE-----
@@ -0,0 +1,38 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIGnjCCBIagAwIBAgIRAISsNxNp8rOJbBB1nGV+D9EwDQYJKoZIhvcNAQEMBQAw
3
+ RjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNV
4
+ BAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwHhcNMjUxMTE5MDMyNzU1WhcNMzAxMTE5
5
+ MDAwMDAwWjBpMQswCQYDVQQGEwJCUjExMC8GA1UEChMoUkVERSBOQUNJT05BTCBE
6
+ RSBFTlNJTk8gRSBQRVNRVUlTQSAtIFJOUDEnMCUGA1UEAxMeUk5QIElDUEVkdSBH
7
+ UjQ2IE9WIFRMUyBDQSAyMDI1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
8
+ AgEAqBd4pyjCSQPAFcGq8km8PmRE/BoAJdPvYWKz6gr6x4sXfY40iCWxWLgZkGuN
9
+ +OwfXRmCXC1hIb2/WWf8Nl92SSfTb/J0D7KVSksnTrXtxyxXSaEnlKEVKltoTVSC
10
+ yEop+pZf6SwuK0l66xvmM9dt/xGgngIvpeaxIIMAAgNDp52PlSrJh5IKzD/FJ4s0
11
+ Rq9Aiz3bXLYXCMCa+8WSSVfxJWYgK9IdrTAsu1T24c+xj9TvMcbUgzTDZLhvsRwj
12
+ FcY332r9XszFkDqZxCSnjb/ztYa5jFrNGGHlmygMUmBCHGqcsqet/trLKjtaGoqO
13
+ JwD0Kk/FAsqF4aGUH7hwIwRuD6ce4BjmPbv870jGdhlRyaMITLbP1YwPDOuoRkrI
14
+ utjL30dyHZWiJq1WuYbcgWODH8QwF5BUyxdHpGsv/QL2GXn/Z+GFgdO+4dBnGz7S
15
+ AokPYKmMQwKdyn3hzNgShDSFq0sj+vhT3fAXSlth1xjCvdDz+ttccinn71FV5Ahu
16
+ S4n9gw8RmSlJoYhr1pzn4Aryi6+31gJVPA8UyTfVh9MbBi7BqPmMnYeZYj7Pr6o0
17
+ k8wsz5RA+HL5AbS1QouWcFFe4LEKWqXh67xFONVfi1bO/Y31mDU3fhSzW8tx6bkm
18
+ s7N2YunWsPgrOGTcBKbrQTseAShEamJoenImGL4fbP8zZF8CAwEAAaOCAWIwggFe
19
+ MA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDATASBgNVHRMBAf8E
20
+ CDAGAQH/AgEAMB0GA1UdDgQWBBSUsMlPweBs787GK2yztMsiinZJtzAfBgNVHSME
21
+ GDAWgBQDXKtzgYeozLCm1ZTiNpZJ/wWZLDB7BggrBgEFBQcBAQRvMG0wLgYIKwYB
22
+ BQUHMAGGImh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyNDYwOwYIKwYB
23
+ BQUHMAKGL2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L3Jvb3Ry
24
+ NDYuY3J0MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5j
25
+ b20vcm9vdHI0Ni5jcmwwLgYDVR0gBCcwJTAIBgZngQwBAgIwDAYKKwYBBAGgMgoB
26
+ AjALBgkrBgEEAaAyARQwDQYJKoZIhvcNAQEMBQADggIBABAGOWuTA3iFMqABnBPR
27
+ rb1YNwcRqQE1Tvz+9f7a0YUWk+wNH3yPVAqd3i9abWtRT6nNBpu49XNAqWSebXpR
28
+ 9J5Im5NJruhYxqtd5c6Y04GdoS/JSh6HmJxiBS2Tv5E+Z9yqkBgt41VhxszYEbus
29
+ qL/56foMry+EWvXRJ0nA9P0GxdFmbTD4DkLFq++E15FBeRf7uRGUe46bZN345OQ7
30
+ jhN2eZwpHzIwTrfaPwHxkFThXU8KPgClmq77JJ/NzlAAPEjpr+TF6K17lzBZS1o1
31
+ Lrk+EFDOGVGc0Ncad7JcFldwmLd0C9B73jq0t5opQcl/u1wdIanosZ418vCJp25K
32
+ QW1BCDCHenf+6mA2VptyuywHcDqM75rSGi5wxbE4IxkMxrl89HsQKfRSJbDT/0v5
33
+ gGlMw/UaCMP6O/4nwHrmXQJ2CVS7M4ucbUbm+ZSqOWgkDCTVvXyyIzWFpWxMk7UH
34
+ XBTei1qG19/PbShKTgYcgod0ReTr4osyARZ5T7jZqe8UKW1DUXcVasukATKryagk
35
+ NRRjRmM9YasyVMO3SVhTFp49aqAe173TKd2yatDmxlvB9s5fZ5pz5ptdyQFTyv+N
36
+ yLDZd5PHiO/JWBFL3g2XVFgKmDVlKsBkqLs/NR18/RWv0d7YKTVVfhc64gdXQAMt
37
+ Lyso4S/KfU1hV0inHITEfil4
38
+ -----END CERTIFICATE-----
@@ -1,3 +1,3 @@
1
1
  module SigaeduApi
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sigaedu_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luiz Picolo
@@ -163,6 +163,8 @@ files:
163
163
  - lib/sigaedu_api/academic_registry/student.rb
164
164
  - lib/sigaedu_api/academic_registry/student_data.rb
165
165
  - lib/sigaedu_api/api.rb
166
+ - lib/sigaedu_api/certificates/globalsign_root_r46.pem
167
+ - lib/sigaedu_api/certificates/rnp_icpedu_gr46_ov_tls_ca_2025.pem
166
168
  - lib/sigaedu_api/version.rb
167
169
  - sigaedu_api.gemspec
168
170
  homepage: https://github.com/luizpicolo/sigaedu_api