Spring Security. Instructor s Guide. Version 3.2. Copyright Capstone Courseware, LLC. All rights reserved.

Size: px
Start display at page:

Download "Spring Security. Instructor s Guide. Version 3.2. Copyright Capstone Courseware, LLC. All rights reserved."

Transcription

1 Spring Security Version 3.2 Instructor s Guide Copyright Capstone Courseware, LLC. All rights reserved.

2 Overview This course breaks down into three main parts, each of a certain style, and the degree of difficulty climbs after the first one. Spring Security does such a good job of encapsulating the most common web security requirements that, for a day at least, we can almost forget about Java, and just see this as a black-box tool that requires only a little XML configuration. And so we work almost entirely in applicationcontext.xml. in the first three chapters: overview, authentication, and authorization. A little bit of the underlying API creeps in as we look at password encoders, salt sources, and programmatic authorization. The next three chapters are more Java-oriented, as we look at ways to customize Spring Security and at more AOP and annotation-driven solutions. The two under the hood chapters confront the actual Java API behind all that XML, and we start doing things that really require Java coding, such as custom user realms and authorization constraints. Method-level authorization as covered in Chapter 6 also draws us across the line into Spring applications, where up through Chapter 5 we could apply the security techniques we re learning to any Java web application, Spring or no. The remaining chapters explore extensions for SAML SSO and OAuth, and it gets pretty dense. SAML especially can be a wilderness of XML datatypes, protocols, bindings, etc., and then OpenSAML might impose a big learning curve of its own. We have included a separate, four-chapter module just on SAML and OpenSAML, and you might take as much as a day covering these in detail, but the idea is more to provide an orientation and so these chapters can be covered fairly lightly. See the timeline and chapter notes for more ideas on this. Chapter 7 on the Spring Security SAML Extension gets right to it, though, and while this is a complex tool to use we have isolated most of the boilerplate stuff and try to focus attention on the pieces that are likely to vary from one application to another and that are visible to the developer in configuration and code. Chapter 8 on OAuth takes a similarly practical approach. 2

3 Timeline Day 1 2 hours Module 1, Chapter 1 4 hours Module 1, Chapter 2 Day 2 2 hours Module 1, Chapter 3 2 hours Module 1, Chapter 4 2½ hours Module 1, Chapter 5 Day 3 2½ hours Module 1, Chapter 6 1 hour Module 2, Chapter 1 1 hour Module 2, Chapter 2 ½ hour Module 2, Chapter 3 1 hour Module 2, Chapter 4 Day 4 3 hours Module 1, Chapter 7 3 hours Module 1, Chapter 8 Please see teaching notes on Module 2 later in this guide, for discussion of the appropriate timeline for covering those chapters. 3

4 Tools Deployed with the Lab Software This course s software requires a separate setup of JDK 7, and optionally the Crimson text editor and/or Eclipse. The labs bundle all other required tools and libraries, including the Tomcat server and Spring itself. These will all be found in directories under c:/capstone/tools as described in the Tools page(s) early in the coursebook. An unusual component for this course is the inclusion of the OpenAM identity manager. This serves as the SAML IdP for our SSO exercises. It s a bit of a beast but we ve packaged it in such a way that it should work cleanly without a lot of hassle. In Capstone/SpringSecurity/Tools/OpenAM11.0 is actually a dedicated Tomcat 7 server image, with the OpenAM WAR pre-deployed and ready to be installed on first startup of the server. The server is pre-configured to port 9080, to stay out of the way of all the other web applications you ll use during the course, and endorsed JARs, memory allocations, and timeout limits have been pre-configured. Ant Build Process Though most students will either use Eclipse exclusively or will be happy to let the ant command take care of things, some will want to understand the inner workings here a little better. Each web project in the course has its own build.xml and build.properties files; these rely on centralized targets and properties files to define a routine for building the application and for deploying/undeploying as necessary from the server. There are also targets for supporting processes such as creating databases, configuring the server with data sources, message queues, user records, etc. These are all identified as necessary in the coursebook. For a better look under the hood, see that build.xml imports a series of properties and targets files in a central directory Ant. Some of these targets files import each other as well, forming a loose chain. All the logic for building and deploying can be found here. 4

5 Teaching Notes I hope that the coursebook is sufficiently clear and detailed, and so the following notes just capture a few ideas about how to approach a given topic, additional concepts to add to your lectures and discussions, and any surprises you might encounter. Module 1, Chapter 2 Note that Health application versions starting with the answer code to Lab 2B will only work with hashed passwords; and over Lab 2C we change the hashing algorithm, salt source, and other details. So if you have any need to jump forward or back to illustrate something with this application, remember to run PrimeWithData for the step you re testing, or you re likely to see authentication failures. It s built to run with or without hashing by a default that s appropriate per step, but you can also pass a hash or hash command-line argument to override the default. Module 1, Chapter 4 A good extra exercise after this chapter is to have students draw up a CRC analysis class, responsibility, and collaborator for the major actors in the authentication system. This often helps to sharpen understanding of who exactly does what. It could be done individually or in small groups, and then everyone could compare notes and pull together a consensus diagram on the whiteboard. Classes to include would probably be: AuthenticationManager AuthenticationProvider UserDetailsService SecurityContextHolder SecurityContext Authentication 5

6 Module 1, Chapter 5 The question of how to implement appointment-reminder protection prior to the lab exercises might produce an interesting discussion, and it s a good one to let students mull for a few minutes before proceeding to the two answers given in the book. An interesting point to discuss after the lab: how do we feel about the fact that our new technique exposes the patient s health-plan ID as part of the reminder URL? And if that s not a great idea, what could we do instead? A few possible fixes: (1) keep a map from reminder ID to patient in the database, with obvious performance disadvantages, (2) parse the reminder (or dig it out of the database, which is more likely in the real world) to see whose data it is, and again this will be expensive, or (3) hash the plan ID before putting it in the URL. I like (3) best, but there are other schools of thought, and this should be a good discussion. The end of this chapter is another good spot for a CRC exercise, this time focused on authorization actors: FilterSecurityInterceptor ObjectDefinitionSource AccessDecisionManager AccessDecisionVoter ConfigAttribute ConfigAttributeDefinition Module 1, Chapter 6 After a couple of more challenging chapters, we finish up with something pretty easy, which is method authorization plus domain-object authorization, which is trickier but also mostly out of scope and kept to a quick introduction. Method authorization requires no Java coding, though it does cross a different line, in that applications must be using Spring to manage their secure objects in order to apply this feature. (The same of course is true of domain-object security.) But, with this condition met, method authorization is pretty clean, and it s mostly a matter of deciding between the four (!) different ways that you can configure it. The big divide here is between annotations and external XML configuration, and there are the usual tradeoffs though we don t go into a big discussion of this in the coursebook. 6

7 Module 2 As you can see in the Timeline section, we recommend passing through the four chapters on SAML itself at a faster pace than the rest. We make these available in the course in full detail, with a few hands-on exercises, to support cases in which you find greater interest in the mechanics of SAML, and perhaps in using the OpenSAML API directly. But in most cases it s better to move lightly through these chapters, and identify key SAML concepts such as subjects and name IDs. I recommend firing up a few of the applications: the Attributes application near the beginning is very quick and yet gives a feel for how SAML works, and it will be a good compliment to the very authentication-heavy material to come. Also some focus on the redirect binding by way of the SAMLRedirectBindingUtil can be interesting, amid what is really some pretty dry stuff in these four chapters. 7

8 Revision History Version 3.2 updates the course for Spring Security 3.2, and expands coverage to include SAML SSO and OAuth. Major changes include: Removal of what was Chapter 0 on the Spring framework, and now simply list Spring experience as a prerequisite for the course. A new section near the end of Chapter 2 that delves into best practices with password hashing, and a new lab specifically on customizing PasswordEncoder and SaltSource. A new section in Chapter 6 annotations and the use of Spring EL for dynamic authorization. A new Chapter 7 on the Spring Security SAML Extension. A new Chapter 8 on OAuth for Spring Security. New Module 2 with four chapters giving some background on SAML. Version 2.0 is the initial release of the course. 8

9 Troubleshooting If you run into any trouble with code exercises, the first and best thing to do is to doublecheck that the classroom machines have been set up precisely according to the course setup guide. Especially, the wrong version of a tool can cause significant problems; don t wander off-book in this way unless absolutely sure you can support the software that you prefer and that we haven t tested. Check environment variable settings carefully, too; these are the cause of a great many classroom glitches. Below are some specific pitfalls that have come up in previous offerings of the course: Remember that the default constraint under <http> is no constraint at all! So a URL pattern that is too narrow or just misses because of a mistype will result in a wave- em-on-in: no authentication required. Most other typos and low-level errors in the configuration will be caught and announced in the server console, either by the Spring container (referring to a nonexistent data-source bean, e.g.) or by Spring Security (not specifying a user details service, using a config attribute without providing a voter that understands it). It s a good idea to keep the server console, or at least the tail of it, visible while building and deploying, so that these sorts of errors will draw your eye easily when they occur. 9

10 Errata The following issues have arisen in the classroom since the latest release, and will be fixed on our next release: No known issues at this time. Feedback We very much appreciate whatever feedback we can get on our courseware especially from the instructor s perspective. Naturally, the more specific, the better, and we strongly encourage you to make notes on issues you may encounter in the classroom, whether they re typos, missing files, or suggestions for clearer language to explain a concept. We can t guarantee that we ll act on every suggestion, but we re aggressive about stamping out problems and try to be highly responsive. Hopefully this means that when you give us good feedback, you get a better course the next time you need to teach it. Please direct all courseware feedback to Will Provost Capstone Courseware mailto:provost@capcourse.com For anyone who s interested, we have a very informal defect-tracking system, based in Excel spreadsheets with columns to capture defect location, nature, status, and author feedback. Ultimately, feedback goes into these sheets, so if you want a template, we ll be happy to provide one, to facilitate the reporting process. 10

Java EE Persistence with Hibernate

Java EE Persistence with Hibernate Java EE Persistence with Hibernate Version 2.1 Copyright 2010-2016 Capstone Courseware, LLC. All rights reserved. Overview This course works from the very basics of ORM concepts through introductory and

More information

JPA with Hibernate. Instructor s Guide. Version 2.1. Copyright Capstone Courseware, LLC. All rights reserved.

JPA with Hibernate. Instructor s Guide. Version 2.1. Copyright Capstone Courseware, LLC. All rights reserved. JPA with Hibernate Version 2.1 Copyright 2010-2016 Capstone Courseware, LLC. All rights reserved. Overview This course works from the very basics of ORM concepts through introductory and intermediate JPA

More information

Developing RESTful Services in Java

Developing RESTful Services in Java Developing RESTful Services in Java Version 1.1 Instructor s Guide Overview We begin this course, as we do all our Java web services courses these days, with a twochapter overview of web services and the

More information

Introduction to Spring

Introduction to Spring Introduction to Spring Version 4.1 Instructor s Guide Copyright 2006-2015 Capstone Courseware, LLC. All rights reserved. Overview This course provides an overview of Spring, wandering onto the territory

More information

Developing RESTful Services with Spring

Developing RESTful Services with Spring Developing RESTful Services with Spring Version 4.1 Instructor s Guide Copyright 2006-2015 Capstone Courseware, LLC. All rights reserved. Overview This course combines four main parts: several chapters

More information

Developing RESTful Services in Java

Developing RESTful Services in Java Developing RESTful Services in Java Version 2.0.1 Instructor s Guide Copyright 2010-2014 Capstone Courseware, LLC. All rights reserved. Note: Course 563 is available in multiple variants 563-GF, 563-WF,

More information

Spring-MVC Web Applications

Spring-MVC Web Applications Spring-MVC Web Applications Version 4.2 Instructor s Guide Copyright 2006-2015 Capstone Courseware, LLC. All rights reserved. Overview This course combines an initial overview of Spring with in-depth coverage

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Renel Fredricksen Robert J. Oberg Instructor s Guide Revision 5.0 Copyright 1999-2006 Capstone Courseware, LLC. All rights reserved. Revision Notes Revision 5.0 is a major

More information

112-WL. Introduction to JSP with WebLogic

112-WL. Introduction to JSP with WebLogic Version 10.3.0 This two-day module introduces JavaServer Pages, or JSP, which is the standard means of authoring dynamic content for Web applications under the Java Enterprise platform. The module begins

More information

Have the students look at the editor on their computers. Refer to overhead projector as necessary.

Have the students look at the editor on their computers. Refer to overhead projector as necessary. Intro to Programming (Time 15 minutes) Open the programming tool of your choice: If you ve installed, DrRacket, double-click the application to launch it. If you are using the online-tool, click here to

More information

112. Introduction to JSP

112. Introduction to JSP 112. Introduction to JSP Version 2.0.2 This two-day module introduces JavaServer Pages, or JSP, which is the standard means of authoring dynamic content for Web applications under the Java Enterprise platform.

More information

Introduction to Programming

Introduction to Programming CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed

More information

Spring-MVC Web Applications

Spring-MVC Web Applications Spring-MVC Web Applications Version 2.5 Instructor s Guide Copyright 2006-2007 Capstone Courseware, LLC. All rights reserved. Overview This course combines four main parts: an initial overview of Spring

More information

RadBlue s S2S Quick Start Package (RQS) Developer s Guide. Version 0.1

RadBlue s S2S Quick Start Package (RQS) Developer s Guide. Version 0.1 RadBlue s S2S Quick Start Package (RQS) Developer s Guide Version 0.1 www.radblue.com April 17, 2007 Trademarks and Copyright Copyright 2007 Radical Blue Gaming, Inc. (RadBlue). All rights reserved. All

More information

ENCM 339 Fall 2017: Editing and Running Programs in the Lab

ENCM 339 Fall 2017: Editing and Running Programs in the Lab page 1 of 8 ENCM 339 Fall 2017: Editing and Running Programs in the Lab Steve Norman Department of Electrical & Computer Engineering University of Calgary September 2017 Introduction This document is a

More information

Question 1: What is a code walk-through, and how is it performed?

Question 1: What is a code walk-through, and how is it performed? Question 1: What is a code walk-through, and how is it performed? Response: Code walk-throughs have traditionally been viewed as informal evaluations of code, but more attention is being given to this

More information

104. Intermediate Java Programming

104. Intermediate Java Programming 104. Intermediate Java Programming Version 6.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for students with previous Java experience

More information

192. Design Patterns in Java Software

192. Design Patterns in Java Software 192. Design Patterns in Java Software Version 5.0 This course seeks to develop, for the experienced Java programmer, a strong, shared vocabulary of design patterns and best practices. The course begins

More information

1 Getting used to Python

1 Getting used to Python 1 Getting used to Python We assume you know how to program in some language, but are new to Python. We'll use Java as an informal running comparative example. Here are what we think are the most important

More information

3 Continuous Integration 3. Automated system finding bugs is better than people

3 Continuous Integration 3. Automated system finding bugs is better than people This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can

More information

CAREER SERVICES MANAGER, Powered by Symplicity STUDENT AND ALUMNI INSTRUCTION MANUAL

CAREER SERVICES MANAGER, Powered by Symplicity STUDENT AND ALUMNI INSTRUCTION MANUAL CAREER SERVICES MANAGER, Powered by Symplicity STUDENT AND ALUMNI INSTRUCTION MANUAL HOME TAB Log in at https://law-hamline-csm.symplicity.com/students/. Students For students, your login is your email

More information

Enhancing cloud applications by using external authentication services. 2015, 2016 IBM Corporation

Enhancing cloud applications by using external authentication services. 2015, 2016 IBM Corporation Enhancing cloud applications by using external authentication services After you complete this section, you should understand: Terminology such as authentication, identity, and ID token The benefits of

More information

PC Applications IT102 estart Fall 2014

PC Applications IT102 estart Fall 2014 PC Applications IT102 estart Fall 2014 3 credits No prerequisites Instructor Information Debbi Remillard, IT Department NHTI full time faculty member for 16 years as PC Applications Coordinator Email address:

More information

JVA-103. Java Programming

JVA-103. Java Programming JVA-103. Java Programming Version 8.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for programmers with experience in languages other

More information

COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web

COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web COMP 117: Internet Scale Distributed Systems (Spring 2018) COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah

More information

A Step-by-Step Guide to getting started with Hot Potatoes

A Step-by-Step Guide to getting started with Hot Potatoes A Step-by-Step Guide to getting started with Hot Potatoes Hot Potatoes Software: http://web.uvic.ca/hrd/hotpot/ Andrew Balaam Objectives: To put together a short cycle of exercises linked together based

More information

Weebly 101. Make an Affordable, Professional Website in Less than an Hour

Weebly 101. Make an Affordable, Professional Website in Less than an Hour Weebly 101 Make an Affordable, Professional Website in Less than an Hour Text Copyright STARTUP UNIVERSITY All Rights Reserved No part of this document or the related files may be reproduced or transmitted

More information

Planning the Repackaging Project

Planning the Repackaging Project Chapter 11 Planning the Repackaging Project Good planning is essential in many of life s endeavors, and application repackaging is no exception. This chapter discusses the various parts of planning a repackaging

More information

The Paperless Classroom with Google Docs by - Eric Curts

The Paperless Classroom with Google Docs by - Eric Curts The Paperless Classroom with Google Docs by - Eric Curts Table of Contents Overview How to name documents and folders How to choose sharing options: Edit, Comment, and View How to share a document with

More information

Staff Directory & Online Classroom: A Picture Book

Staff Directory & Online Classroom: A Picture Book Staff Directory & Online Classroom: A Picture Book eleventh in a series By Dennis Sulfsted Technology Coordinator Reading Community City Schools Holly Approved 2007 HRF Publications All current Picture

More information

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336 CSE 336 Introduction to Programming for Electronic Commerce Why You Need CSE336 Concepts like bits and bytes, domain names, ISPs, IPAs, RPCs, P2P protocols, infinite loops, and cloud computing are strictly

More information

Scenarios, Storyboards, Wireframes, Critique. Jon Kolko Professor, Austin Center for Design

Scenarios, Storyboards, Wireframes, Critique. Jon Kolko Professor, Austin Center for Design Scenarios, Storyboards, Wireframes, Critique Jon Kolko Professor, Austin Center for Design Scenarios Creating a written story that explains how a person will use a product, service, or system to achieve

More information

5 Templates You Can Use To Get More Product Reviews

5  Templates You Can Use To Get More Product Reviews 5 Email Templates You Can Use To Get More Product Reviews Brought to you by: Visit Our Website: https://wholesalesuiteplugin.com Email Template #1 Hi {first_name} Thanks for your recent order {days_ago}

More information

CALCULUS LABORATORY ACTIVITY: Numerical Integration, Part 1

CALCULUS LABORATORY ACTIVITY: Numerical Integration, Part 1 CALCULUS LABORATORY ACTIVITY: Numerical Integration, Part 1 Required tasks: Tabulate values, create sums Suggested Technology: Goals Spreadsheet: Microsoft Excel or Google Docs Spreadsheet Maple or Wolfram

More information

LAB 7 Writing Assembly Code

LAB 7 Writing Assembly Code Goals To Do LAB 7 Writing Assembly Code Learn to program a processor at the lowest level. Implement a program that will be used to test your own MIPS processor. Understand different addressing modes of

More information

Xton Access Manager GETTING STARTED GUIDE

Xton Access Manager GETTING STARTED GUIDE Xton Access Manager GETTING STARTED GUIDE XTON TECHNOLOGIES, LLC PHILADELPHIA Copyright 2017. Xton Technologies LLC. Contents Introduction... 2 Technical Support... 2 What is Xton Access Manager?... 3

More information

Google Drive. Lesson Planet

Google Drive. Lesson Planet Google Drive Lesson Planet 2014 www.lessonplanet.com Introduction Trying to stay up to speed with the latest technology can be exhausting. Luckily this book is here to help, taking you step by step through

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

This section provides some reminders and some terminology with which you might not be familiar.

This section provides some reminders and some terminology with which you might not be familiar. Chapter 3: Functions 3.1 Introduction The previous chapter assumed that all of your Bali code would be written inside a sole main function. But, as you have learned from previous programming courses, modularizing

More information

Table of Contents. How to use this document. How to use the template. Page 1 of 9

Table of Contents. How to use this document. How to use the template. Page 1 of 9 Table of Contents How to use this document... 1 How to use the template... 1 Template Sections... 2 Blank Section... 2 Signature Sheet... 2 Title Page... 2 Roman Numerals Section (i, ii, iii, iv )... 3

More information

B. What strategy (order of refactorings) would you use to improve the code?

B. What strategy (order of refactorings) would you use to improve the code? { return title.gettext(); public boolean needssplit() { return costlabel.gettext().equals(" >3 "); public boolean needsestimate() { return costlabel.gettext().equals("? "); Challenges PG-1. Smells. A.

More information

MEAP Edition Manning Early Access Program Get Programming with Java Version 1

MEAP Edition Manning Early Access Program Get Programming with Java Version 1 MEAP Edition Manning Early Access Program Get Programming with Java Version 1 Copyright 2018 Manning Publications For more information on this and other Manning titles go to www.manning.com welcome First,

More information

Test-Driven Development (TDD)

Test-Driven Development (TDD) Test-Driven Development (TDD) CS 4501 / 6501 Software Testing [Lasse Koskela, Test Driven, Chapters 2-3] 1 Agile Airplane Testing Test harness: Appearance matches Color coding in place Fly 6ft (or 2m)

More information

(Updated 29 Oct 2016)

(Updated 29 Oct 2016) (Updated 29 Oct 2016) 1 Class Maker 2016 Program Description Creating classes for the new school year is a time consuming task that teachers are asked to complete each year. Many schools offer their students

More information

EVALUATION COPY. Unauthorized Reproduction or Distribution Prohibited SHAREPONT 2013 BUSINESS INTELLIGENCE

EVALUATION COPY. Unauthorized Reproduction or Distribution Prohibited SHAREPONT 2013 BUSINESS INTELLIGENCE SHAREPONT 2013 BUSINESS INTELLIGENCE SharePoint 2013 Business Intelligence (SBI2013 version 1.1.0) Copyright Information Copyright 2016 Webucator. All rights reserved. The Author Bruce Gordon Bruce Gordon

More information

Learning and Development. UWE Staff Profiles (USP) User Guide

Learning and Development. UWE Staff Profiles (USP) User Guide Learning and Development UWE Staff Profiles (USP) User Guide About this training manual This manual is yours to keep and is intended as a guide to be used during the training course and as a reference

More information

Microsoft. SharePoint Your Organization s Name Here

Microsoft. SharePoint Your Organization s Name Here Microsoft SharePoint 2013 Your Organization s Name Here Table of Contents Table of Contents... 2 Introducing CustomGuide Training Manuals... 7 How it Works... 8 The Fundamentals... 9 Introduction to SharePoint...

More information

1.5 Edge Component The problem. Practical SOA Arnon Rotem-Gal-Oz 1

1.5 Edge Component The problem. Practical SOA Arnon Rotem-Gal-Oz 1 1 1.5 Edge Component The last pattern of the basic patterns is the Edge Component pattern. Unlike the other pattern which are basic just because they are very common, the Edge component is also basic because

More information

114. Jakarta Struts. Prerequisites. Version 1.1.3

114. Jakarta Struts. Prerequisites. Version 1.1.3 114. Jakarta Struts Version 1.1.3 This advanced course shows JSP and servlet programmers how to build "Model-2" Web applications using the Jakarta Struts project from Apache. Students learn the Struts

More information

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website:

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: https://users.wpi.edu/~sjarvis/ece2049_smj/ We will come around checking your pre-labs

More information

Building Web Applications with SAS AppDev Studio TM 3.0

Building Web Applications with SAS AppDev Studio TM 3.0 Building Web Applications with SAS AppDev Studio TM 3.0 ABSTRACT Frederick Pratter, Eastern Oregon University, La Grande OR The SAS/IntrNet Software product is now nearly 10 years old and uses the obsolete

More information

We aren t getting enough orders on our Web site, storms the CEO.

We aren t getting enough orders on our Web site, storms the CEO. In This Chapter Introducing how Ajax works Chapter 1 Ajax 101 Seeing Ajax at work in live searches, chat, shopping carts, and more We aren t getting enough orders on our Web site, storms the CEO. People

More information

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are

More information

JVA-563. Developing RESTful Services in Java

JVA-563. Developing RESTful Services in Java JVA-563. Developing RESTful Services in Java Version 2.0.1 This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We develop

More information

Reference Guide. Adding a Generic File Store - Importing From a Local or Network ShipWorks Page 1 of 21

Reference Guide. Adding a Generic File Store - Importing From a Local or Network ShipWorks Page 1 of 21 Reference Guide Adding a Generic File Store - Importing From a Local or Network Folder Page 1 of 21 Adding a Generic File Store TABLE OF CONTENTS Background First Things First The Process Creating the

More information

Biocomputing II Coursework guidance

Biocomputing II Coursework guidance Biocomputing II Coursework guidance I refer to the database layer as DB, the middle (business logic) layer as BL and the front end graphical interface with CGI scripts as (FE). Standardized file headers

More information

Guide - Deploying for Production. apiman Final

Guide - Deploying for Production. apiman Final Guide - Deploying for Production apiman 1.2.9.Final 1. Deployment Tooling for apiman... 1 2. Architecture Summary... 3 3. Database... 5 4. Elasticsearch... 7 5. Keycloak... 9 6. API Gateway... 11 6.1.

More information

Power BI Developer Bootcamp

Power BI Developer Bootcamp Power BI Developer Bootcamp Mastering the Power BI Development Platform Course Code Audience Format Length Course Description Student Prerequisites PBD365 Professional Developers In-person and Remote 4

More information

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries

More information

Java EE Architecture, Part Two. Java EE architecture, part two 1

Java EE Architecture, Part Two. Java EE architecture, part two 1 Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,

More information

Implementing a Numerical Data Access Service

Implementing a Numerical Data Access Service Implementing a Numerical Data Access Service Andrew Cooke October 2008 Abstract This paper describes the implementation of a J2EE Web Server that presents numerical data, stored in a database, in various

More information

JVA-163. Enterprise JavaBeans

JVA-163. Enterprise JavaBeans JVA-163. Enterprise JavaBeans Version 3.0.2 This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional

More information

Skill 1: Multiplying Polynomials

Skill 1: Multiplying Polynomials CS103 Spring 2018 Mathematical Prerequisites Although CS103 is primarily a math class, this course does not require any higher math as a prerequisite. The most advanced level of mathematics you'll need

More information

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture - 04 Introduction to Programming Language Concepts

More information

WA2031 WebSphere Application Server 8.0 Administration on Windows. Student Labs. Web Age Solutions Inc. Copyright 2012 Web Age Solutions Inc.

WA2031 WebSphere Application Server 8.0 Administration on Windows. Student Labs. Web Age Solutions Inc. Copyright 2012 Web Age Solutions Inc. WA2031 WebSphere Application Server 8.0 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2012 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4

More information

Welcome to Lab! You do not need to keep the same partner from last lab. We will come around checking your prelabs after we introduce the lab

Welcome to Lab! You do not need to keep the same partner from last lab. We will come around checking your prelabs after we introduce the lab Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: http://users.wpi.edu/~ndemarinis/ece2049/ You do not need to keep the same partner from

More information

Teachers Manual for Creating a Website with WordPress

Teachers Manual for Creating a Website with WordPress Teachers Manual for Creating a Website with WordPress ISBN 978 90 5905 422 6 2 1. Introduction This course manual assumes a lesson structure consisting of nine points. These points have been divided into

More information

Learning to Provide Modern Solutions

Learning to Provide Modern Solutions 1 Learning to Provide Modern Solutions Over the course of this book, you will learn to enhance your existing applications to modernize the output of the system. To do this, we ll take advantage of the

More information

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014 CS2112 Fall 2014 Assignment 4 Parsing and Fault Injection Due: March 18, 2014 Overview draft due: March 14, 2014 Compilers and bug-finding systems operate on source code to produce compiled code and lists

More information

Events in Oracle Eloqua

Events in Oracle Eloqua A Marketing Geek s Guide to: Events in Oracle Eloqua ABOUT THIS SERIES Oracle Eloqua is the most powerful marketing automation platform on the market. It has the ability to scale to the needs of the largest

More information

Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process

Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process Utilizing Fast Testing to Transform Java Development into an Agile, Quick Release, Low Risk Process Introduction System tests, often called slow tests, play a crucial role in nearly every Java development

More information

ForgeRock Access Management Core Concepts AM-400 Course Description. Revision B

ForgeRock Access Management Core Concepts AM-400 Course Description. Revision B ForgeRock Access Management Core Concepts AM-400 Course Description Revision B ForgeRock Access Management Core Concepts AM-400 Description This structured course comprises a mix of instructor-led lessons

More information

Scenarios, Storyboards, Wireframes, Critique. Jon Kolko Professor, Austin Center for Design

Scenarios, Storyboards, Wireframes, Critique. Jon Kolko Professor, Austin Center for Design Scenarios, Storyboards, Wireframes, Critique Jon Kolko Professor, Austin Center for Design Scenarios Creating a written story that explains how a person will use a product, service, or system to achieve

More information

Science-as-a-Service

Science-as-a-Service Science-as-a-Service The iplant Foundation Rion Dooley Edwin Skidmore Dan Stanzione Steve Terry Matthew Vaughn Outline Why, why, why! When duct tape isn t enough Building an API for the web Core services

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Welcome Back! Without further delay, let s get started! First Things First. If you haven t done it already, download Turbo Lister from ebay.

Welcome Back! Without further delay, let s get started! First Things First. If you haven t done it already, download Turbo Lister from ebay. Welcome Back! Now that we ve covered the basics on how to use templates and how to customise them, it s time to learn some more advanced techniques that will help you create outstanding ebay listings!

More information

ICANN Start, Episode 1: Redirection and Wildcarding. Welcome to ICANN Start. This is the show about one issue, five questions:

ICANN Start, Episode 1: Redirection and Wildcarding. Welcome to ICANN Start. This is the show about one issue, five questions: Recorded in October, 2009 [Music Intro] ICANN Start, Episode 1: Redirection and Wildcarding Welcome to ICANN Start. This is the show about one issue, five questions: What is it? Why does it matter? Who

More information

every Website Packages

every Website Packages every every Website Packages So you ve decided you need a new website.. Congratulations! It s a big step venturing into the rabbit hole of the interwebs and you don t want to take a wrong turn. We love

More information

Gearing Up for Development CS130(0)

Gearing Up for Development CS130(0) Gearing Up for Development CS130(0) Development Development is a coding heavy assignment! You will need to create application using React.js (a Javascript Library). This application will display a list

More information

SAML-Based SSO Configuration

SAML-Based SSO Configuration Prerequisites, page 1 SAML SSO Configuration Task Flow, page 5 Reconfigure OpenAM SSO to SAML SSO Following an Upgrade, page 9 SAML SSO Deployment Interactions and Restrictions, page 9 Prerequisites NTP

More information

Blackboard Student Quick Reference Guide

Blackboard Student Quick Reference Guide Blackboard Student Quick Reference Guide Welcome to Blackboard, UTT s E-Learning System! This Quick Reference Guide is designed to help get you started using Blackboard Release 9.1.120113.0. Page 1 of

More information

Best Practices for. Membership Renewals

Best Practices for. Membership Renewals Best Practices for Membership Renewals For many associations, it s easy to get caught up in the marketing efforts associated with attracting new members. But as important as membership growth is, renewal

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Java- EE Web Application Development with Enterprise JavaBeans and Web Services Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven

More information

13: MOODLE WIKIS. Oklahoma Department of CareerTech WELCOME TO THE MOODLE WIKIS TUTORIAL! In this tutorial, you will learn:

13: MOODLE WIKIS. Oklahoma Department of CareerTech  WELCOME TO THE MOODLE WIKIS TUTORIAL! In this tutorial, you will learn: Oklahoma Department of CareerTech www.okcareertech.org 13: MOODLE WIKIS WELCOME TO THE MOODLE WIKIS TUTORIAL! In this tutorial, you will learn: What a wiki is Some ways to use a wiki with students How

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information

Intelligent Agents in CloudDeakin

Intelligent Agents in CloudDeakin SENSES e L e a r n i n g p r o j e c t Intelligent Agents in CloudDeakin Intelligent Agents are automatic emails sent to students in response to their actions. It is an efficient way to personalise the

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

TestComplete 3.0 Overview for Non-developers

TestComplete 3.0 Overview for Non-developers TestComplete 3.0 Overview for Non-developers Copyright 2003 by Robert K. Leahey and AutomatedQA, Corp. All rights reserved. Part : Table of Contents Introduction 1 About TestComplete 1 Basics 2 Types of

More information

CIT 590 Homework 5 HTML Resumes

CIT 590 Homework 5 HTML Resumes CIT 590 Homework 5 HTML Resumes Purposes of this assignment Reading from and writing to files Scraping information from a text file Basic HTML usage General problem specification A website is made up of

More information

Programming: Computer Programming For Beginners: Learn The Basics Of Java, SQL & C Edition (Coding, C Programming, Java Programming, SQL

Programming: Computer Programming For Beginners: Learn The Basics Of Java, SQL & C Edition (Coding, C Programming, Java Programming, SQL Programming: Computer Programming For Beginners: Learn The Basics Of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) PDF PLEASE NOTE: You

More information

Revising CS-M41. Oliver Kullmann Computer Science Department Swansea University. Linux Lab Swansea, December 13, 2011.

Revising CS-M41. Oliver Kullmann Computer Science Department Swansea University. Linux Lab Swansea, December 13, 2011. Computer Science Department Swansea University Linux Lab Swansea, December 13, 2011 How to use the revision lecture The purpose of this lecture (and the slides) is to emphasise the main topics of this

More information

Software Development Fundamentals (SDF)

Software Development Fundamentals (SDF) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Software Development Fundamentals (SDF) Fluency in the process of software development is a prerequisite to the study of most

More information

BEAAquaLogic. Service Bus. Interoperability With EJB Transport

BEAAquaLogic. Service Bus. Interoperability With EJB Transport BEAAquaLogic Service Bus Interoperability With EJB Transport Version 3.0 Revised: February 2008 Contents EJB Transport Introduction...........................................................1-1 Invoking

More information

How to take up my assessment?

How to take up my assessment? 2011, Cognizant How to take up my assessment? Step 1 : You have to take up the assessment only using the Virtual Desktop Interface (VDI environment) Please use the URL, https://learninglabs.cognizant.com

More information

nacelle Documentation

nacelle Documentation nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2

More information

Eclipse Day at GooglePlex 2009 Joep Rottinghuis Productivity Tools Architect, ebay Inc. August 27, 2009

Eclipse Day at GooglePlex 2009 Joep Rottinghuis Productivity Tools Architect, ebay Inc. August 27, 2009 Deploying Successful Enterprise Tools Eclipse Day at GooglePlex 2009 Joep Rottinghuis Productivity Tools Architect, ebay Inc. August 27, 2009 Abstract For a tool to be successful in an enterprise, it takes

More information

Essbase Installation Tutorial Tim Tow, President and Oracle ACE Director. Applied OLAP, Inc

Essbase Installation Tutorial Tim Tow, President and Oracle ACE Director. Applied OLAP, Inc , President and September 10, 2008 (revised October 23, 2008) In a recent blog post, I expressed my dedication to installing Essbase 11.1.1 and, I figured that while I was installing it, I should document

More information

CS 4349 Lecture October 18th, 2017

CS 4349 Lecture October 18th, 2017 CS 4349 Lecture October 18th, 2017 Main topics for #lecture include #minimum_spanning_trees. Prelude Homework 6 due today. Homework 7 due Wednesday, October 25th. Homework 7 has one normal homework problem.

More information

Telerik Training for Mercury 3

Telerik Training for Mercury 3 Telerik Training for Mercury 3 Telerik training is intended for IT professionals and Power Users familiar with constructing reports based on raw data from databases or spreadsheets. You will learn how

More information