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

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

Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
Tatsuhiko 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 us
Anurag Patel
 

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
 
Replacing Squid with ATS
Replacing Squid with ATSReplacing Squid with ATS
Replacing Squid with ATS
 
ReplacingSquidWithATS
ReplacingSquidWithATSReplacingSquidWithATS
ReplacingSquidWithATS
 
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

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

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