SlideShare a Scribd company logo
1 of 24
Download to read offline
There and back again
   A story of a simple HTTP request
Whoami
●
    Colin Harrington
    ●
        colin.harrington@objectpartners.com
    ●
        @ColinHarrington
Setup
●
    Tomcat 6.0.32

●
    Grails 1.3.7

    ●
        Spring 3.0.5

    ●
        Spring Security 3.0.4

    ●
        Sitemesh 2.4

    ●
        Hibernate ..
Detail / Source
●   http://tomcat.apache.org/download-60.cgi
●   CATALINA_OPTS="-Xdebug
    -Xrunjdwp:transport=dt_socket,address=8000,server=y,s
    uspend=n"

●   git clone git://git.springsource.org/spring-
    security/spring-security.git
●   git checkout 3.0.4.RELEASE

●   svn co https://src.springframework.org/svn/spring-
    framework/tags/spring-framework-3.0.5.RELEASE/

●   git clone git://github.com/sitemesh/sitemesh2.git
●   git checkout 9e97e40cf059b486567ef170ecac2ab01ea17bab
    (version 2.4)
Tomcat Valves
Tomcat Valve Examples
●
    org.apache.catalina.core.StandardEngineValve
●
    org.apache.catalina.valves.ErrorReportValve
●
    org.apache.catalina.core.StandardHostValve
●
    org.apache.catalina.core.StandardContextValve
●
    org.apache.catalina.core.StandardWrapperValve
ApplicationFilterChain
●   charEncodingFilter
●   hiddenHttpMethod
●   grailsWebRequest
●   SpringSecurityFilterChain
    (configurable via the plugin)
      –   Virtual Filter Chain
●   sitemesh (GrailsPageFilter)
●   urlMapping
ApplicationFilterChain
●   SpringSecurityFilterChain
    (configurable via the plugin)
      –   SecurityContextPersistenceFilter
      –   MutableLogoutFilter
      –   RequestHolderAuthenticationFilter
      –   SecurityContextHolderAwareRequestFilter
      –   RememberMeAuthenticationFilter
      –   AnonymousAuthenticationFilter
      –   ExceptionTranslationFilter
      –   FilterSecurityInterceptor (annotation,
          rules, etc.)
Application Dispatch
●   GrailsDispatcherServlet
●   ModelAndView
●   CompositeInterceptor
    ●   Filters!
        –   preHandle
        –   postHandle
        –   afterCompletion
●   SimpleGrailsController
Application Dispatch
●   GrailsDispatcherServlet
●   SimpleGrailsController
●   Conventions
    ●   Services
    ●   Hibernate / GORM
    ●   Etc.
Views & layout
● GroovyPagesServlet
● Resolving Views

  ● DispatchServlet

  ● GrailsViewResolver

● GrailsPageView

● Sitemesh Processing
Thank you
Credits
●   http://community.imaginefx.com/forums/storage/41/106334/3%20trolls.jpg
●   http://ctsling.com/Photos/chain/chain%201.jpg
●   http://image.made­in­china.com/2f0j00ZevTWYqGHtVA/API­Casting­Globe­Valve.jpg
●   http://en.wikipedia.org/wiki/File:Tomcat­logo.svg
●   http://4.bp.blogspot.com/­9ix7IiU1zPs/TdvYzKZiiQI/AAAAAAAADsI/q3C5kohTVKw/s1600/24gollumededlfeldt.jpg
●   http://the­hobbitmovie.com/wp­content/uploads/2010/12/hobbit­map.jpg
●   http://www.gamereplays.org/community/uploads/post­64773­1179078881.jpg
●   http://cdn2.screenjunkies.com/wp­content/uploads/images/2010/LOTR%2520Gandalf%25204.jpg
●   http://images.wikia.com/childrensbooks/images/6/6e/One_Ring.png
●   http://www.comingsoon.net/nextraimages/hobbitdwarveslarge.jpg
●   http://static.tumblr.com/elmigy1/Npylfcz3n/the­hobbit.jpg
●   http://this­world­is.boldlygoingnowhere.org/andinet/wordpress/wp­content/gallery/smaug/smaug­2.jpg
●   http://img­fan.theonering.net/rolozo/images/baker/sting.jpg
●   http://www.theonering.com/images2­404/SamandShelob
●   http://www.lotrmmorpg.com/maps/rivendale.jpg
●   https://www.buybunn.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/p/a/paper_filters_1.jpg
●   http://www.thespecialistsltd.com/files/Retro_Dispatch_Radio.jpg
●   http://world­the.com/wp­content/uploads/2011/07/View­From­Diamond­Head­Oahu­Hawaii.jpg

More Related Content

What's hot

(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotionStefan Haflidason
 
ATG Advanced Profile Management
ATG Advanced Profile ManagementATG Advanced Profile Management
ATG Advanced Profile ManagementKate Semizhon
 
톰캣 #09-쓰레드
톰캣 #09-쓰레드톰캣 #09-쓰레드
톰캣 #09-쓰레드GyuSeok Lee
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitJohn Ombagi
 
Automating web site deployment
Automating web site deploymentAutomating web site deployment
Automating web site deploymentGareth Rushgrove
 
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaMonitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaWaldemar Neto
 
Security Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCSecurity Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCRahul Raghavan
 
Monitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at FastlyMonitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at FastlyMarcus Barczak
 
Advanced cache invalidation
Advanced cache invalidationAdvanced cache invalidation
Advanced cache invalidationPer Buer
 
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema RubyTdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema RubyFabio Akita
 
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeGDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeKAI CHU CHUNG
 
Analyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKAnalyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKClément OUDOT
 
Introducing Revel
Introducing RevelIntroducing Revel
Introducing RevelZhebr
 
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」Tsuyoshi Yamamoto
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesAriel Jatib
 
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCarParis Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCarJean Baptiste Favre
 
Introduction to Neo4j APOC
Introduction to Neo4j APOCIntroduction to Neo4j APOC
Introduction to Neo4j APOCKnoldus Inc.
 

What's hot (20)

(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion
 
ATG Advanced Profile Management
ATG Advanced Profile ManagementATG Advanced Profile Management
ATG Advanced Profile Management
 
톰캣 #09-쓰레드
톰캣 #09-쓰레드톰캣 #09-쓰레드
톰캣 #09-쓰레드
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Automating web site deployment
Automating web site deploymentAutomating web site deployment
Automating web site deployment
 
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaMonitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
 
Security Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCSecurity Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLC
 
Monitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at FastlyMonitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at Fastly
 
Puppet Data Mining
Puppet Data MiningPuppet Data Mining
Puppet Data Mining
 
Advanced cache invalidation
Advanced cache invalidationAdvanced cache invalidation
Advanced cache invalidation
 
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema RubyTdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
 
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeGDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
 
Backend frx for movmi
Backend frx for movmiBackend frx for movmi
Backend frx for movmi
 
Asm.js introduction
Asm.js introductionAsm.js introduction
Asm.js introduction
 
Analyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKAnalyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELK
 
Introducing Revel
Introducing RevelIntroducing Revel
Introducing Revel
 
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCarParis Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
 
Introduction to Neo4j APOC
Introduction to Neo4j APOCIntroduction to Neo4j APOC
Introduction to Neo4j APOC
 

Similar to There and back again: A story of a s

Integrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowIntegrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowTatiana Al-Chueyr
 
Apache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and TomcatApache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and TomcatJean-Frederic Clere
 
Hacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginHacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginBurt Beckwith
 
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPROIDEA
 
vdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdfvdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdfcrezzcrezz
 
Website Performance Basics
Website Performance BasicsWebsite Performance Basics
Website Performance Basicsgeku
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務Mu Chun Wang
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Androidsullis
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKitJoone Hur
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Tatsuhiko Miyagawa
 
Openshift: Deployments for the rest of us
Openshift: Deployments for the rest of usOpenshift: Deployments for the rest of us
Openshift: Deployments for the rest of usAnurag Patel
 
Managing and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with OrchestratorManaging and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with OrchestratorShlomi Noach
 
Replacing Squid with ATS
Replacing Squid with ATSReplacing Squid with ATS
Replacing Squid with ATSKit Chan
 
Svn to-git
Svn to-gitSvn to-git
Svn to-gitjwausle
 
Weavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 BarcelonaWeavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 BarcelonaAmazon Web Services
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰KAI CHU CHUNG
 

Similar to There and back again: A story of a s (20)

Integrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowIntegrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache Airflow
 
Apache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and TomcatApache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and Tomcat
 
Hacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginHacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 Plugin
 
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
 
Skyfall b sides-c00-l-ed5-sp-2013
Skyfall b sides-c00-l-ed5-sp-2013Skyfall b sides-c00-l-ed5-sp-2013
Skyfall b sides-c00-l-ed5-sp-2013
 
Nginx Essential
Nginx EssentialNginx Essential
Nginx Essential
 
vdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdfvdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdf
 
Website Performance Basics
Website Performance BasicsWebsite Performance Basics
Website Performance Basics
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 
Cold fusion is racecar fast
Cold fusion is racecar fastCold fusion is racecar fast
Cold fusion is racecar fast
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Android
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKit
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
Openshift: Deployments for the rest of us
Openshift: Deployments for the rest of usOpenshift: Deployments for the rest of us
Openshift: Deployments for the rest of us
 
Managing and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with OrchestratorManaging and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with Orchestrator
 
ReplacingSquidWithATS
ReplacingSquidWithATSReplacingSquidWithATS
ReplacingSquidWithATS
 
Replacing Squid with ATS
Replacing Squid with ATSReplacing Squid with ATS
Replacing Squid with ATS
 
Svn to-git
Svn to-gitSvn to-git
Svn to-git
 
Weavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 BarcelonaWeavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 Barcelona
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 

There and back again: A story of a s

  • 1. There and back again A story of a simple HTTP request
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Whoami ● Colin Harrington ● colin.harrington@objectpartners.com ● @ColinHarrington
  • 12.
  • 13. Setup ● Tomcat 6.0.32 ● Grails 1.3.7 ● Spring 3.0.5 ● Spring Security 3.0.4 ● Sitemesh 2.4 ● Hibernate ..
  • 14. Detail / Source ● http://tomcat.apache.org/download-60.cgi ● CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,s uspend=n" ● git clone git://git.springsource.org/spring- security/spring-security.git ● git checkout 3.0.4.RELEASE ● svn co https://src.springframework.org/svn/spring- framework/tags/spring-framework-3.0.5.RELEASE/ ● git clone git://github.com/sitemesh/sitemesh2.git ● git checkout 9e97e40cf059b486567ef170ecac2ab01ea17bab (version 2.4)
  • 15.
  • 17. Tomcat Valve Examples ● org.apache.catalina.core.StandardEngineValve ● org.apache.catalina.valves.ErrorReportValve ● org.apache.catalina.core.StandardHostValve ● org.apache.catalina.core.StandardContextValve ● org.apache.catalina.core.StandardWrapperValve
  • 18. ApplicationFilterChain ● charEncodingFilter ● hiddenHttpMethod ● grailsWebRequest ● SpringSecurityFilterChain (configurable via the plugin) – Virtual Filter Chain ● sitemesh (GrailsPageFilter) ● urlMapping
  • 19. ApplicationFilterChain ● SpringSecurityFilterChain (configurable via the plugin) – SecurityContextPersistenceFilter – MutableLogoutFilter – RequestHolderAuthenticationFilter – SecurityContextHolderAwareRequestFilter – RememberMeAuthenticationFilter – AnonymousAuthenticationFilter – ExceptionTranslationFilter – FilterSecurityInterceptor (annotation, rules, etc.)
  • 20. Application Dispatch ● GrailsDispatcherServlet ● ModelAndView ● CompositeInterceptor ● Filters! – preHandle – postHandle – afterCompletion ● SimpleGrailsController
  • 21. Application Dispatch ● GrailsDispatcherServlet ● SimpleGrailsController ● Conventions ● Services ● Hibernate / GORM ● Etc.
  • 22. Views & layout ● GroovyPagesServlet ● Resolving Views ● DispatchServlet ● GrailsViewResolver ● GrailsPageView ● Sitemesh Processing
  • 24. Credits ● http://community.imaginefx.com/forums/storage/41/106334/3%20trolls.jpg ● http://ctsling.com/Photos/chain/chain%201.jpg ● http://image.made­in­china.com/2f0j00ZevTWYqGHtVA/API­Casting­Globe­Valve.jpg ● http://en.wikipedia.org/wiki/File:Tomcat­logo.svg ● http://4.bp.blogspot.com/­9ix7IiU1zPs/TdvYzKZiiQI/AAAAAAAADsI/q3C5kohTVKw/s1600/24gollumededlfeldt.jpg ● http://the­hobbitmovie.com/wp­content/uploads/2010/12/hobbit­map.jpg ● http://www.gamereplays.org/community/uploads/post­64773­1179078881.jpg ● http://cdn2.screenjunkies.com/wp­content/uploads/images/2010/LOTR%2520Gandalf%25204.jpg ● http://images.wikia.com/childrensbooks/images/6/6e/One_Ring.png ● http://www.comingsoon.net/nextraimages/hobbitdwarveslarge.jpg ● http://static.tumblr.com/elmigy1/Npylfcz3n/the­hobbit.jpg ● http://this­world­is.boldlygoingnowhere.org/andinet/wordpress/wp­content/gallery/smaug/smaug­2.jpg ● http://img­fan.theonering.net/rolozo/images/baker/sting.jpg ● http://www.theonering.com/images2­404/SamandShelob ● http://www.lotrmmorpg.com/maps/rivendale.jpg ● https://www.buybunn.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/p/a/paper_filters_1.jpg ● http://www.thespecialistsltd.com/files/Retro_Dispatch_Radio.jpg ● http://world­the.com/wp­content/uploads/2011/07/View­From­Diamond­Head­Oahu­Hawaii.jpg