ShinyProxyμ μ λ¦΄λ¦¬μ€ λ²μ (2.3.0)μμλ μλ² μ²λ¦¬ λͺ¨λμμ DTλ₯Ό μ¬μ©νλ λͺ¨λ μ±μ΄ μ€λ¨λ©λλ€. λΈλΌμ°μ νλ‘κ·Έλλ¨Έ λκ΅¬κ° "jquery.min.js:4 POST http://myip/app_direct/retire/session/cbc7bf01da3a023b6db378384c240836/dataobj/shiny_table?w=&nonce=22377961e7available5d "λΌκ³ νμλλ λμ λΈλΌμ°μ μμ Ajax μ€λ₯λ₯Ό νμν©λλ€.
λ€μκ³Ό κ°μ κ²½κ³ μμ:
λ§μ΄ν ι‘―η€Ί
DataTables κ²½κ³ : ν
μ΄λΈ ID = DataTables_Table_0 - Ajax μ€λ₯μ
λλ€. μ΄ μ€λ₯μ λν μμΈν λ΄μ©μ http://datatables.net/tn/7 μ μ°Έμ‘°νμμμ€.
https://github.com/openanalytics/shinyproxy/issues/140 κ³Ό κ°μ΄
λ΄ νκ²½:
OS: μ°λΆν¬ μ°λΆν¬ 18.04.3 LTS
μΈμ¦: keycloak 7.0.0
리λ²μ€νλ‘μ: Nginx
μ-λΉλλ-μ±:
λμκ΄(λΉλλ)
λΌμ΄λΈλ¬λ¦¬(DT)
UI <- μ 체 νμ΄μ§(DT::dataTableOutput('tbl'))
μλ² <- κΈ°λ₯(μ
λ ₯, μΆλ ₯, μΈμ
) {
output$tbl <- DT::renderDataTable(data.frame(Col_1=c(1:10), Col_2=c(11:20)))
}
ShinyApp(UI, μλ²)
application.ymlμμ κ°λ¨ν auth λλ ldapμΌλ‘ μ νν λμΌν μμ€ν (docker,shinyproxy,nginx μ€μ )μ΄ λ¬Έμ μμ΄ μ€νλ©λλ€.
μλμ shinyproxy.log:
2019-08-28 11:46:21.991 INFO 14337 --- [XNIO-2 task-3] eocontainerproxy.service.UserService : λ‘κ·ΈμΈν μ¬μ©μ [user: test1]
2019-08-28 11:46:25.142 INFO 14337 --- [XNIO-2 task-6] csdocker.client.DefaultDockerClient: μμ 컨ν
μ΄λ ID: f24f391a707d19228f5e97da1e7f8e2781230
2019-08-28 11:46:28.068 INFO 14337 --- [XNIO-2 task-6] eocontainerproxy.service.ProxyService : νλ‘μ νμ±ν [μ¬μ©μ: test1] [μ¬μ: μ¬μ© μ€μ§] [id: 4199b4a8-60dd-43e7- ad8e-0bfac025cc76]
2019-08-28 11:46:28.828 μ€λ₯ 14337 --- [XNIO-2 I/O-3] io.undertow.proxy: UT005028: /proxy_endpoint/4199b4a8-60dd-4507-ad80μ λν νλ‘μ μμ² /4fba467e8b4976c85ad4be80ee538d7d/dataobj/shiny_table μ€ν¨
io.undertow.server.TruncatedResponseException: null
io.undertow.client.http.HttpRequestConduit.truncateWrites(HttpRequestConduit.java:711) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.terminateWrites(AbstractFixedLengthStreamSinkConduit.java:256) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
org.xnio.conduits.ConduitStreamSinkChannel.shutdownWrites(ConduitStreamSinkChannel.java:178) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final]
io.undertow.channels.DetachableStreamSinkChannel.shutdownWrites(DetachableStreamSinkChannel.java:79) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyHandler$HTTPTrailerChannelListener.handleEvent(ProxyHandler.java:754) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:646) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:561) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.client.http.HttpClientExchange.invokeReadReadyCallback(HttpClientExchange.java:212) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.client.http.HttpClientConnection.initiateRequest(HttpClientConnection.java:410) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.client.http.HttpClientConnection.sendRequest(HttpClientConnection.java:343) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction.run(ProxyHandler.java:561) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.util.SameThreadExecutor.execute(SameThreadExecutor.java:35) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.HttpServerExchange.dispatch(HttpServerExchange.java:815) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:316) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:290) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyConnectionPool.connectionReady(ProxyConnectionPool.java:338) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.ProxyConnectionPool.connect(ProxyConnectionPool.java:525) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
io.undertow.server.handlers.proxy.LoadBalancingProxyClient.getConnection(LoadBalancingProxyClient.java:301) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
eu.openanalytics.containerproxy.util.ProxyMappingManager$1.getConnection(ProxyMappingManager.java:88) [containerproxy-0.8.3.jar!/:0.8.3]
io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.run(ProxyHandler.java:310) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:582) [xnio-nio-3.3.8.Final.jar!/:3.3.8.Final]
org.xnio.nio.WorkerThread.run(WorkerThread.java:466) [xnio-nio-3.3.8.Final.jar!/:3.3.8.Final]
μ κ³ κ°μ¬ν©λλ€! μ΄κ²μ μ€μ λ‘ #140μ 볡μ λ³Έμ λλ€.
κ°μ¬ν©λλ€, λ²κ·Έ μμ μ κΈ°λ€λ¦¬μμμ€
μ΄ λ²κ·Έμ λν μ λ°μ΄νΈκ° μμ΅λκΉ?
λλ μ€κ°μ μμ λμμ΅λλ€. μΆμλ₯Ό μ€λΉνκ³ μμ΅λλ€.
@tverbeke 컀λ°μ΄λ PRμ 곡μ ν μ μλμ? μ°λ¦¬λ μ΄κ²μ΄ μ λ§λ‘ νμνκ³ λͺ κ°μ§ ν΄νΉμ μλνμ§λ§ μ λλ‘ ν΄κ²°ν μ μμμ΅λλ€.
컀λ°μ΄λ μμ μ€μΈ λΆκΈ°λ₯Ό μ§μ ν΄ μ£Όμλ©΄ λ§€μ° λμμ΄ λ κ²μ λλ€. @tverbeke
@tverbeke μ λ°μ΄νΈκ° μμ΅λκΉ? λ§€μ° λμμ΄ λ κ²μ λλ€.
μ΄κ²μ κ΄λ ¨ 컀λ°μ λλ€. https://github.com/openanalytics/containerproxy/commit/c99298934470b2ecee35c9eb9ad67e49fc7acd46
https://github.com/openanalytics/shinyproxy/issues/184 μ΄κ²μ΄ μ΄λ»κ² ν΄κ²°λλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μΈμ¦μ΄ μμμΌλ‘ μ€μ λ κ²½μ° Keyclock μΈμ¦ μμ΄ λ³΅μ ν μ μμ΅λλ€.
μ΄ λ²κ·Έμ λν μ λ°μ΄νΈκ° μμ΅λκΉ?
μ κ·Ήμ μΌλ‘ λ¬Έμ μ λν΄ μκΈ°μμΌ μ£Όμ μ κ°μ¬ν©λλ€. κ·Έλ¬λ μ¬λ¬ λ¬Έμ , νΉν μ€λ³΅μΌλ‘ λ§κ°λ μ΄ λ¬Έμ μ μ μ¬ν μ견μ κ²μνλ κ²μ μμ°μ±μ΄ λ¨μ΄μ§λ κ² κ°μ΅λλ€...
https://github.com/openanalytics/shinyproxy/issues/184 μ΄κ²μ΄ μ΄λ»κ² ν΄κ²°λλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μΈμ¦μ΄ μμμΌλ‘ μ€μ λ κ²½μ° Keyclock μΈμ¦ μμ΄ λ³΅μ ν μ μμ΅λλ€.
μ€μ λ‘ #184λ μ΄ μμ μ¬νμ΄ λμμ΄ λμ§ μμ μ μλ λ€λ₯Έ λ¬Έμ μΈ κ² κ°μ΅λλ€. κ·Έλ¬λ μ΄ μ견μ keycloak μΈμ¦μ μ¬μ©μ μΈκΈνλ _νμ¬ λ¬Έμ _(λ° #140)μ κ΄λ ¨μ΄ μμ΅λλ€.
μ¬λ¬ λκΈ μ£μ‘ν©λλ€. λ΄ μκ°μ λ¬Έμ μ μμΈμ΄ POST μμ²μ΄κΈ° λλ¬Έμ λμΌν μ€λ₯λ‘ μ€ν¨νλ€λ κ²μ
λλ€. λΉμ·ν μ’
λ₯μ μ루μ
μ΄ μμ μ μμ΅λλ€.
#184μ ν΄λ²μ κΈ°λν©λλ€βΊοΈ
μλ νμΈμ, μ΄ μ€λ₯κ° λ€μ λ°μν©λλ€. 2.4.1μμ 2.3.1λ‘ λ€μ΄κ·Έλ μ΄λνλλ° μ€λ₯κ° μ¬λΌμ‘μ΅λλ€.
@KZARCA @LEDfan μ μμ μ¬νμ λ€μ 릴리μ€μ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
λλ μ€κ°μ μμ λμμ΅λλ€. μΆμλ₯Ό μ€λΉνκ³ μμ΅λλ€.